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

时间:2012-02-01 17:43:49

标签: c++ mfc clr unmanaged managed-c++

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

因此,我更改了Project的属性,使“Common Language Runtime Support”属性从“No Common Language Support”更改为“Common Language Runtime Support(/ clr)”。 现在当我尝试编译时,我收到一条错误,内容为

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

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

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

1 个答案:

答案 0 :(得分:3)

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

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