Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Windows-VC++;-Can';"_“资产”;可以在静态构建中使用_C++_Windows_Visual Studio 2008_Winapi_Visual C++ - Fatal编程技术网

C++ Windows-VC++;-Can';"_“资产”;可以在静态构建中使用

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

我试图在VisualStudio-2008中以静态模式(使用/MT)编译vc++代码。但是我得到了以下错误

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的定义,那么只需复制它,但用相同的原型调用不同的函数(由你提供)。