将非托管C++代码编译为托管代码

将非托管C++代码编译为托管代码

问题描述:

我有很多非托管C++代码写得很久以前。现在,我想回去使用MS Test(内置于Visual Studio)向该代码添加自动化测试。但是,为了做到这一点,我必须将C++构建为.lib文件并在其周围编写包装器层(以便从C#测试中调用它),或者我需要能够将代码编译为托管代码。我得到的第一个选项,但理想情况下,我宁愿使用第二个选项,以便不需要包装层。请注意,尽管我提到用C#编写测试代码,但这不一定是要求。将非托管C++代码编译为托管代码

因此,我更改了项目的属性,使“公共语言运行时支持”属性从“无公共语言支持”更改为“公共语言运行时支持(/ clr)”。 现在当我尝试编译,我得到读取

"error D8016: '/ZI' and '/clr' command-line options are incompatible" 

有没有人有想法这究竟是怎样一个错误,我怎么能计算出上述问题?你以前做过吗?我一直在网上搜索和阅读这篇文章已经有相当长的一段时间,我真的空手而回,没有真正的答案。

任何提示或建议将不胜感激。 谢谢。

/ZI选项用于使用本机代码进行编辑和继续。

尝试使用非常相似的/Zi选项。调试数据库没有编辑和继续功能。

+0

如何更改该选项?在项目的属性?你知道哪里吗? – JToland 2012-02-01 18:07:36

+0

是的,那是项目属性的一部分。选择创建一个调试数据库,但不要选择编辑和继续。 – 2012-02-01 18:09:47

+0

嗯,现在我看到“错误D8016:'/ clr'和'/ Gm'命令行选项不兼容” – JToland 2012-02-01 18:19:10