我正在尝试在 Visual Studio 中设置我的设置,以便我可以编写托管 C++
代码,稍后由 C#
程序调用。我从一个新的 C++
项目开始,这里是我更改的设置及其原因:
- 预编译 header 到
不使用预编译 header
。因为我只是不想。 - 公共(public)语言运行时支持到
/clr
。据我了解,这是根本需要的。 - 调试信息格式从
/ZI
到none
。因为/clr
和/ZI
不兼容 - Enable minimal rebuild to
no
。因为/clr
和/Gm
不兼容。 - 基本运行时检查到
默认
。因为/clr
和/RTC1
不兼容。
毕竟,我现在遇到许多位于 xlocale
或 xlocnum
中的 C2760 错误代码。错误具体说明
syntax error: unexpected token 'identifier', expected 'catch'
现在,我是这里的极端初学者,所以这可能是微不足道的,如果是这样,我深表歉意。我的目标是编写一个简单的 c++ 类
,用托管代码包装它,并有一个 DLL
,稍后我可以将它与 c#
程序链接.
当我查看 MSDN 文档页面时,他们只说要使用 /clr
和 /LD
进行编译。好吧,我也找不到 /LD
选项,而且我知道 /LD
选项用于创建 DLL
很重要。任何帮助或指导将不胜感激。
附言这是 Visual Studio Community 2017
最佳答案
事实是:您必须有 2 个项目。
- 只是旧的好 C/C++ 项目。您可以在此处放置第三方库,如 OpenSSL 或任何其他跨平台源。在这里,您可能会遇到删除/包装任何特定于平台的代码的挑战。
- Windows 运行时组件 - 这正是 CLI 代码,充当 native C/C++ 和托管 C# 之间的桥梁。您可以在 File -> New project,然后是 Visual C++ -> Windows Universal 中找到它。关于运行时组件的一般想法是您可以通过签名将 CLI 方法无缝导入到 C# 代码中,您可以直接在 CLI 代码中调用 C# 回调,所有 C#/CLI 类型都是二进制兼容的等等。这就是为什么您不能“只添加特别配置的 C/C++ 项目”。
关于c++ - 用于 C# 的托管 C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48722285/