VC ++ 2008 win32控制台应用程序使用一些MFC函数,它可以在“调试”中无故障地运行。 VC ++ 2008环境中的模式。此外,调试可执行文件可以在安装了完整版Visual Studio 2008的任何计算机上运行。
但是同样的调试可执行文件不能在没有安装Visual Studio 2008的系统上运行,它会显示以下错误消息:
应用程序无法启动,因为它的并排配置不正确。请参阅应用程序事件日志或使用命令行sxstrace.exe工具获取更多详细信息。
初始搜索此问题会导致MSN建议安装VC ++ 2008 x86可再发行SP1。但这未能解决问题。
然后,重新编译win32控制台应用程序以发布'发布'模式,它给出以下错误消息:
致命错误C1189:#error:使用/ MD建立MFC应用程序[d](CRT dll版本)需要MFC共享dll版本。请#define _AFXDLL或不要使用/ MD [d]
这个错误发生在afx.h标题中。
我试图在预处理器中实际#define _AFXDLL,但它创建了关于无法将MFC类型的字符串转换为char *等的新错误
我也尝试过使用MFC'设置:在静态库和共享DLL中,都会产生更多错误
问题是,原始程序是在VC ++ 6.0中创建的,它使用了很多MFC函数(特别是字符串和CObject),但是在win32控制台应用程序中重新编译VC ++ 2008后,它可以在调试模式下工作,但是在发布模式下不能成为独立的exe,这就是我需要一个可以在更新的窗口(7或8)上运行的独立exe的东西
任何人都可以提供帮助。感谢。
答案 0 :(得分:0)
是。不要在调试模式下构建。构建发布。您无法合法分发调试DLL。您可以通过PDB文件构建包含调试信息的发行版本。
答案 1 :(得分:0)
如果您的发布版本与某些调试库存在依赖关系,并且与非调试库相关联,则可能会发生这种情况。