C++/CLI在vs上的安装和初步使用教程

C++/CLI中见过这个符号:^
C++中我们用*来表示一个指针,在C++/CLI中,我们用符号^来表示句柄。
现在*用来指定CRT heap上的原生指针,而句柄是安全指针,它位于托管堆上。
你可以把句柄当成引用来考虑,和原生指针不同的是,他们不会引起内存泄漏,即便没有对它们进行适当的删除,因为GC会处理这些问题,并且他们没有一个固定的内存地址,所以在执行的时候它们会被移来移去。
%对于^就相当于&对于*

N* pn = new N; //分配在原生heap上n& rn = *pn; //绑定一个普通引用到原生对象R^ hr = gcnew R; //分配在CLI heap上r% rr = *hr; //绑定跟踪的引用到gc-lvalue

一 在VS2017/2019 安装 C++/CLI的模块支持 C++/CLI在vs上的安装和初步使用教程
文章图片

C++/CLI在vs上的安装和初步使用教程
文章图片

C++/CLI在vs上的安装和初步使用教程
文章图片

C++/CLI在vs上的安装和初步使用教程
文章图片

二 新建C++/CLI项目 C++/CLI在vs上的安装和初步使用教程
文章图片

三 添加源文件 C++/CLI在vs上的安装和初步使用教程
文章图片

C++/CLI在vs上的安装和初步使用教程
文章图片

String^ fileName = "textfile.txt"; StreamWriter^ sw = gcnew StreamWriter(fileName);

If you use the sample program, notice thatyou use the gcnew keyword instead of new when creating a .NET object,and that gcnew returns a handle( ^ ) rather than a pointer ( * ):
using namespace System; using namespace System::IO; int main(){ String^ fileName = "textfile.txt"; StreamWriter^ sw = gcnew StreamWriter(fileName); sw->WriteLine("Hi Major"); sw->Close(); Console::WriteLine("a new file ('{0}') has been written", fileName); return 0; }

C++/CLI在vs上的安装和初步使用教程
文章图片

C++/CLI在vs上的安装和初步使用教程
文章图片

C++/CLI在vs上的安装和初步使用教程
文章图片

C++/CLI在vs上的安装和初步使用教程
文章图片

【C++/CLI在vs上的安装和初步使用教程】到此这篇关于C++/CLI在vs上的安装和初步使用的文章就介绍到这了,更多相关C++ CLI安装使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    推荐阅读