服务器之家

服务器之家 > 正文

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

时间:2021-11-21 16:04     来源/作者:茗君(Major_s)

c++/cli中见过这个符号:^

c++中我们用*来表示一个指针,在c++/cli中,我们用符号^来表示句柄。

现在*用来指定crt heap上的原生指针,而句柄是安全指针,它位于托管堆上。

你可以把句柄当成引用来考虑,和原生指针不同的是,他们不会引起内存泄漏,即便没有对它们进行适当的删除,因为gc会处理这些问题,并且他们没有一个固定的内存地址,所以在执行的时候它们会被移来移去。

%对于^就相当于&对于*

?
1
2
3
4
5
6
7
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上的安装和初步使用教程

?
1
2
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 ( * ):


?
1
2
3
4
5
6
7
8
9
10
11
12
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安装使用内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_41375318/article/details/118387439

标签:
VS CLI C++ 

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部