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注意点:

  1. 托管堆对象的创建使用 gcnew,而不是 new
  2. 托管堆对象指针的类型为 T^,而不是 T*,以上述代码为例,str_managed 的类型为 System::String^。得益于 C++ 11 开始有的类型自动推导,我们可以直接使用 auto 代替显示类型声明,类似 C# 中的 var。
  3. 使用 :: 代替 . 访问 namespace 和 class/struct,使用 -> 代替 . 访问对象中的成员。
  4. 使用 ref class/ref struct 定义 .NET 引用类型,使用 value class/value struct 定义 .NET 值类型。
  5. 使用 interface class/interface struct 定义接口。
  6. 使用 property 定义属性。
  7. C++/CLI 项目可以引用任何的 C++ 项目或动态链接库,但是要确保架构相同,即你不能用 x86 的配置引用 x64 架构下的非托管代码。

 

posted @ 2022-01-23 23:48  陳亞林  阅读(613)  评论(0)    收藏  举报