现象
XP下(通过VS2005编译并调试)运行(FreeImage的TestAPI)程序,出现“应用程序正常初始化失败。请单击“确定”,终止应用程序”。
(调试窗口中输出:LDR: LdrpWalkImportDescriptor() failed to probe E:\opensource\bin\FreeImaged.dll for its manifest, ntstatus 0xc0150002)
解决过程
检查了下VS2005清单配置,一切正常。
检查输出目录,TestAPI.exe和FreeImaged.dll不在同一目录下!!!这显然不会正确运行
重新设定了下输出目录,将TestAPI输出到FreeImaged.dll目录下,调试运行,一切正常!
小结
该错误通常是用户系统中缺少或找不到应用程序运行时所依赖的dll造成的(如:上面的TestAPI缺少FreeImaged.dll,用户系统中通常缺少msvcrt.dll,msvcp60.dll,MSVCR80.DLL等标准dll模块)。
尝试将可能缺少或找不到的dll复制到程序目录中即可(或设置PATH环境变量,复制到System32目录下等均可)解决。
PS:
1.这个错误提示非常可恶,它极具误导性,假如提示“xxx.dll找不到或者版本不匹配“之类的,那问题就不言自明了。
2.默认TestAPI链接时会出现大量符号无法解析错误,这是因为在工程配置“预处理器”中定义了FREEIMAGE_LIB造成的,删除这个定义就可以链接成功了
应用程序正常初始化失败 VS2005
最新推荐文章于 2021-04-09 05:36:33 发布