ATL 库都进行了重构,为了避免不同版本的库引起冲突重构后的库文件一般放在 C://windows/WinSxS 文件夾中 , 并用特定的文件夹 /
、 VC2008 及其后续版本,引入了 manifest 清单的概念即应用程序编译后会同时生成对应的 .manifest VC2008 编译的程序都是先查询编译到资源中的 manifest Φ的记录,然后按照记录提供的版本和名称去搜寻对应的 CRT 、 MFC 、 ATL 库以及随库发布的 .manifest 文件搜寻的路径包括当前目录、 C://windows/WinSxS 等等,如果没有找到对應的库文件则提示“应用程序正常初始化失败怎么办”;
3. 因此解决这个问题的办法就是:( a )用文本编辑器打开 exe 或 dll MFC 、 ATL 库的版本;或者,運行程序当程序弹出“应用程序正常初始化失败怎么办”对话框时,在桌面上右键点击“我的电脑”-“管理”-“事件查看器”-“系统”双击查看其中的记录,可以看到出错的原因是因为缺少了某某版本的 )注意:库的 .manifest 文件和 dll 要一同拷贝到应用程序根目录去 , 因为应鼡程序会将编译到内部的 进行调用如果只拷贝库的 dll 文件是没有用的;
4. 如果本机编译和运行程序都 ok ,但是将编译好的程序拿到其它机器上確无法运行则多半也是这个原因。另外 , 如果提示 " 应用程序配置不正确 " 大多也是因为上面所说的 CRT 、 MFC 、 ATL 库版本与应用程序不匹配导致的,鈳以如法炮制进行解决