c/c++语言开发共享C++/CLI在vs上的安装和初步使用教程

c++/cli中见过这个符号:^c++中我们用*来表示一个指针,在c++/cli中,我们用符号^来表示句柄。现在*用来指定crt heap上的原生指针,而句柄是安全指针,它位于托管堆上。你可以把句柄当

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安装使用内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!

需要了解更多c/c++开发分享C++/CLI在vs上的安装和初步使用教程,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/642987.html

(0)
上一篇 2021年7月1日
下一篇 2021年7月1日

精彩推荐