调试模式有效。发布模式产生错误!

时间:2011-03-11 20:21:39

标签: c# c++ visual-studio-2010

我有一个使用原生.DLL库的解决方案,该库由带有C#GUI的.NET .DLL包装。

我的所有管道在调试模式下都能正常工作。在我尝试进入发布模式的那一刻,我得到了一大堆错误消息,主要与本机库中的.CPP文件有关。错误包括以下内容:

  1. 不允许定义dllimport功能
  2. TRACE_DEBUG_METHOD_CALL:找不到标识符
  3. 我的主.CPP文件中有很多未声明的标识符(例如:DLLAPI_Release:undeclared identifier)
  4. 我必须承认C / C ++项目的属性配置是压倒性的,所以我想知道是否有一个或多个简单的设置,我只需要修改。

    另外,那里有专门讨论VS2010项目属性窗口的书吗?我有一些书,但没有一个真正花在任何时间显然是严肃的应用程序开发的一个非常关键的组件。

    我感谢任何人都能提供的帮助。谢谢!

2 个答案:

答案 0 :(得分:2)

当您进行一系列设置更改但不会将它们用于Release版本时,这不太可能发生。很容易忘记,无论如何第一次。您可以轻松地告知默认情况下更改了哪些设置,它们以粗体显示。逐步浏览设置页面,使用左上角的配置组合框来回翻转。

大约15分钟的生命,不计算您需要的思考时间,因为发布版本的 设置应该不同。使用虚拟项目启动另一个Visual Studio实例以验证它。

答案 1 :(得分:1)

尝试比较属性页面可能会受到打击。我的建议是打开项目的属性页,选择Debug配置,在“C / C ++”下,选择“命令行”并将命令行选项复制到文本编辑器中,然后对Release配置执行相同操作并看看他们的不同之处。您需要对“链接器”命令行执行相同的操作。

一些差异将是有意的(例如,应该为Debug配置设置调试标志),但是你应该能够发现应该相同但不是的东西。

实际上,追踪设置命令行选项的位置可能会有点麻烦,特别是如果您使用属性表来管理项目之间的公共属性,但通常您应该能够通过查看项目来跟踪它们。不同页面上的不同选项。

至于参考,最好的参考是MSDN上的实际编译器文档。有一个部分包含all of the documented compiler options,另一个部分包含all of the documented linker options

属性页面只是用于设置这些不同选项的GUI前端。当您在属性页面中选择其中一个属性时,应在对话框底部的帮助框中说明该属性使用哪些编译器选项。