C++ Windows-VC++;-Can';"_“资产”;可以在静态构建中使用
我试图在VisualStudio-2008中以静态模式(使用/MT)编译vc++代码。但是我得到了以下错误C++ Windows-VC++;-Can';"_“资产”;可以在静态构建中使用,c++,windows,visual-studio-2008,winapi,visual-c++,C++,Windows,Visual Studio 2008,Winapi,Visual C++,我试图在VisualStudio-2008中以静态模式(使用/MT)编译vc++代码。但是我得到了以下错误 error Please use the /MD switch for _AFXDLL builds 我几乎尝试了所有的选择。错误是由于宏“_ASSERTE”引起的。但是,我不能像我的超级坐标所说的那样删除这些宏。任何帮助都将得到非常感谢您必须创建自己版本的\u ASSERTE,它不调用\u crtdbgreeptw,而是调用您自己的报告功能。问题是在宏中使用\u CrtDbgRepor
error Please use the /MD switch for _AFXDLL builds
我几乎尝试了所有的选择。错误是由于宏“_ASSERTE”引起的。但是,我不能像我的超级坐标所说的那样删除这些宏。任何帮助都将得到非常感谢您必须创建自己版本的
\u ASSERTE
,它不调用\u crtdbgreeptw
,而是调用您自己的报告功能。问题是在宏中使用\u CrtDbgReportW
,而不是其他内容。您必须创建自己版本的\u ASSERTE
,它不调用\u CrtDbgReportW
,而是调用自己的报告功能。问题是在宏中使用了\u CrtDbgReportW
,而没有其他内容。错误是告诉您程序有实际问题。虽然(u ASSERTE)可能是近因,但这里有一个更深层次的问题需要解决
您的构建脚本或源代码是#define ing#u afxdl,它告诉MFC您计划使用MFC的DLL版本。这要求您也使用CRT的DLL版本。但是/MT开关带来了CRT的静态版本
我强烈建议的解决方案是使用/MD开关来使用CRT DLL和MFC DLL。您没有解释为什么要尝试使用/MT,但这样做很少是正确的选择
或者,如果您致力于/MT路由,则不应定义_afxdl
最后,您很可能根本不打算使用MFC。在这种情况下,停止包含MFC头(afx*.h),错误将消失
Martyn错误是告诉您程序中存在一些实际问题。虽然(u ASSERTE)可能是近因,但这里有一个更深层次的问题需要解决 您的构建脚本或源代码是#define ing#u afxdl,它告诉MFC您计划使用MFC的DLL版本。这要求您也使用CRT的DLL版本。但是/MT开关带来了CRT的静态版本 我强烈建议的解决方案是使用/MD开关来使用CRT DLL和MFC DLL。您没有解释为什么要尝试使用/MT,但这样做很少是正确的选择 或者,如果您致力于/MT路由,则不应定义_afxdl 最后,您很可能根本不打算使用MFC。在这种情况下,停止包含MFC头(afx*.h),错误将消失
马丁你好,我找不到你。至于我所关心的任何库都可以以静态方式或动态方式添加。即使它调用了_crtdbgreeptw,也应该能够以静态方式添加该库。我上面说的是我的假设,我对vc++是新手。你能告诉我如何创建我自己的“_ASSERTE”,它可以显示一些消息并终止程序。如果你能找到_ASSERTE的定义,那么就简单地复制它,但用相同的原型调用不同的函数(由你提供)。嗨,我听不懂你的意思。至于我所关心的任何库都可以以静态方式或动态方式添加。即使它调用了_crtdbgreeptw,也应该能够以静态方式添加该库。我上面说的是我的假设,我对vc++是新手。你能解释一下如何创建我自己的“_ASSERTE”,它能够显示一些消息并终止程序。如果你能找到_ASSERTE的定义,那么只需复制它,但用相同的原型调用不同的函数(由你提供)。