#定义_AFX_NO_DEBUG_CRT导致编译错误,流(#define _AFX_NO_DEBUG

2019-09-23 05:44发布

我有Visual Studio 2008的下MFC C ++编译器项目。

我在我的stdafx.h中添加_AFX_NO_DEBUG_CRT中的#include之前,以避免所有调试新的,并删除MFC提供了(我想为我自己更好的跨平台的兼容性)。

我这样做然而,当我得到的错误,如以下流:

>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxtls_.h(62) : error C2059: syntax error : '__asm'
1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxtls_.h(62) : error C2143: syntax error : missing ')' before '{'
1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxtls_.h(62) : error C2143: syntax error : missing ')' before '{'
1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxtls_.h(62) : error C2143: syntax error : missing ')' before '{'
1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxtls_.h(62) : error C2143: syntax error : missing ';' before '{'
1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxtls_.h(62) : warning C4091: '' : ignored on left of 'int' when no variable is declared
1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxtls_.h(62) : error C2143: syntax error : missing ';' before 'constant'
1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxtls_.h(62) : error C2143: syntax error : missing ';' before '}'
1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxtls_.h(62) : error C2143: syntax error : missing ';' before ','
1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxtls_.h(62) : error C2059: syntax error : ')'
1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxtls_.h(62) : error C2059: syntax error : ')'
1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxtls_.h(62) : error C2059: syntax error : ')'
1

我“认为”它可能有一些做与__asm INT 3电话,但我不能肯定。 有没有人有过这个问题吗? 如果是这样,你怎么解决? 我是坚持用MFC的内存跟踪? 我真的希望不要因为它会让我的图书馆少了很多跨平台:(

任何帮助将非常感激!

Answer 1:

我想出了一个方法,其中包括使用/ FORCE:多个命令行,迫使它用我的,而不是MFC之一。 这一切似乎很好地工作。 我可以,现在,甚至可以跟踪“mallocs”和“新的” S通过不归我函数执行:)

如果任何人有任何更好的解决方案,那么请张贴,但现在这似乎解决我的问题:)



Answer 2:

我试图与搞乱_AFX_NO_DAO_SUPPORT在过去的宏和所有它确实是导致无休止的崩溃。 我终于碰到这个文章就来了:

PRB:出现问题时定义_AFX_NO_XXX

它没有具体列出您在尝试使用,但它可能仍然适用。



Answer 3:

尝试把中的#define你的项目的编译选项,而不是在stdafx.h中的顶部。

你怎么能指望建立一个跨平台的库如果你使用MFC? 避免了new和delete重载不会有所作为。

此外,你永远不会写分配纤夫一样可靠和完整的MFC提供的。 YAGNI ,重点发展实际的应用程序。



文章来源: #define _AFX_NO_DEBUG_CRT causes a stream of compilation errors