C#的托管c ++代码

时间:2018-02-10 15:19:40

标签: c++ .net visual-studio

我正在尝试在Visual Studio中设置我的设置,以便我可以编写托管C++代码以便稍后由C#程序调用。我从一个新的C++项目开始,这里是我更改的设置和原因:

  • 预编译标题not using precompiled headers。我只是宁愿不这样做。
  • 公共语言运行时支持/clr。据我所知,这是根本需要的。
  • 调试信息格式/ZInone。由于/clr/ZI不兼容,
  • 启用最小重建no。由于/clr/Gm不兼容。
  • 基本运行时检查default。由于/clr/RTC1不兼容。

毕竟,我现在遇到xlocalexlocnum中的许多 C2760 错误代码。该错误明确指出

  

语法错误:意外标记'标识符',预期'捕获'

现在,我是一个极端的初学者,所以也许这是微不足道的,如果是这样,我道歉。我的目标是编写一个简单的c++ class,用托管代码包装它,然后使用DLL我可以在以后与c#程序链接。

当我查看MSDN文档页面时,他们所说的只是使用/clr/LD进行编译。好吧,我也找不到/LD选项,我知道/LD选项是创建重要的DLL选项。任何帮助或指导将不胜感激。

P.S。这是2017年的Visual Studio社区

1 个答案:

答案 0 :(得分:0)

真相是:你必须有2个项目。

  1. 旧的好的C / C ++项目。您可以在此处放置第三方库,如OpenSSL或任何其他跨平台源。在这里,您可能需要一些挑战来删除/包装任何特定于平台的代码。
  2. Windows运行时组件 - 这正是CLI代码,其作用类似于本机C / C ++和托管C#之间的桥梁。你可以在File - >找到这个。新项目,然后是Visual C ++ - > Windows Universal。关于运行时组件的一般概念是,您可以通过签名将CLI方法无缝导入C#代码,您可以在CLI代码中调用C#回调,所有C#/ CLI类型都是二进制兼容的等。这就是为什么你不能&#34 ;只需添加特别配置的C / C ++项目"。