信息发布→ 登录 注册 退出

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

发布时间:2026-01-11

点击量:

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项目

三 添加源文件

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;
}


标签:# 一个普通  # heap  # lvalue  # style  # text  # hr  # align  # center  # rr  # gc  # gcnew  # 移来  # 移去  # C++  # 见过  # 你可以  # 的是  # 绑定  # 句柄  # C++超集C++/CLI模块的基本类型  # C++超集C++/CLI模块的基本用法  # C++超集C++/CLI模块的基本语法  # vs  # CLI  # CLI安装使用  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!