正文

C2059和C2733同时出现的错误解决2010-07-27 13:44:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/miaowei/51535.html

分享到:

症状   在 Microsoft Visual Studio 2005 中创建一个 c + + 应用程序。 您定义 _CRTDBG_MAP_ALLOC,然后编译的时候会出现 C2059和C2733的错误。   例如对于假定 c + + 应用程序中包含下面的代码 #define _CRTDBG_MAP_ALLOC #include <malloc.h> #include <crtdbg.h> #include <stdlib.h> 在此的示例编译 c + + 应用程序时您会收到以下编译器错误消息: 错误 C2059: 语法错误: 常量 错误 C2733: 第二个重载函数 _dupenv_s_dbg 不允许使用的 C 链接 解决方法 要变通解决此问题,请按照下列步骤操作: 启动 Visual Studio 2005。 在 文件 菜单上指向 打开,然后单击 项目/解决方案。 找到该项目或您要打... 要变通解决此问题,请按照下列步骤操作: 启动 Visual Studio 2005。 在 文件 菜单上指向 打开,然后单击 项目/解决方案。 找到该项目或您要打开,该解决方案,然后单击 打开。 复制并粘贴以下代码在代码窗口中。下面代码应该黏贴在 # include <stdlib.h> 语句 前。 #pragma push_macro("_dupenv_s") #pragma push_macro("_wdupenv_s") #undef _dupenv_s #undef _wdupenv_s 复制并粘贴以下代码在代码窗口中。该代码应粘贴在 # include <stdlib.h> 语句  之后。 #pragma pop_macro("_dupenv_s") #pragma pop_macro("_wdupenv_s") 在 生成 菜单上单击 生成解决方案。 该代码应类似于下面的代码示例 #define _CRTDBG_MAP_ALLOC #include <malloc.h> #include <crtdbg.h> #pragma push_macro("_dupenv_s") #pragma push_macro("_wdupenv_s") #undef _dupenv_s #undef _wdupenv_s #include <stdlib.h> #pragma pop_macro("_dupenv_s") #pragma pop_macro("_wdupenv_s")以上分析是参考MSDN翻译结果。

阅读(4040) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册