cl 命令行编译 cli 程序 /EHs- /clr
VS编译器命令行选项加 /EHs- /clr 否则报错误. 记录备忘
https://docs.microsoft.com/en-us/cpp/build/reference/clr-common-language-runtime-compilation?view=msvc-140
https://docs.microsoft.com/en-us/cpp/build/reference/eh-exception-handling-model?view=msvc-140
C++/Cli注意点:
- 托管堆对象的创建使用 gcnew,而不是 new
- 托管堆对象指针的类型为 T^,而不是 T*,以上述代码为例,str_managed 的类型为 System::String^。得益于 C++ 11 开始有的类型自动推导,我们可以直接使用 auto 代替显示类型声明,类似 C# 中的 var。
- 使用 :: 代替 . 访问 namespace 和 class/struct,使用 -> 代替 . 访问对象中的成员。
- 使用 ref class/ref struct 定义 .NET 引用类型,使用 value class/value struct 定义 .NET 值类型。
- 使用 interface class/interface struct 定义接口。
- 使用 property 定义属性。
- C++/CLI 项目可以引用任何的 C++ 项目或动态链接库,但是要确保架构相同,即你不能用 x86 的配置引用 x64 架构下的非托管代码。