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

Compiling Unmanaged C++ Code as Managed Code

本文关键字:编译 托管代码 代码 C++      更新时间:2023-10-16

我有很多非托管C++代码是很久以前写的。现在,我想回过头来,使用MS Test(内置在Visual Studio中)将自动测试添加到代码中。然而,为了做到这一点,我必须将C++构建为.lib文件,并围绕它编写一个包装层(以便从C#测试中调用它),或者我需要能够将代码编译为托管代码。我已经找到了第一个选项,但理想情况下我更喜欢使用第二个选项,这样就不需要包装层。注意,尽管我提到用C#编写测试代码,但这并不一定是一个要求。

因此,我更改了项目的属性,使"公共语言运行时支持"属性从"无公共语言支持"更改为"公共语言执行时支持(/clr)"现在当我试图编译时,我得到一个读取的错误

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

有人知道这到底意味着什么吗?我该如何解决上述问题?你以前这样做过吗?我已经在网上搜索和阅读了很长一段时间,但我真的空手而归,没有真正的答案。

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

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

请尝试非常类似的/Zi选项。调试数据库而不使用"编辑并继续"功能。