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

 更新时间:2021年07月01日 16:38:47   作者:茗君(Major_s)  
本文给大家介绍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项目

在这里插入图片描述

三 添加源文件

在这里插入图片描述

在这里插入图片描述

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安装使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++递归算法实例代码

    C++递归算法实例代码

    这篇文章主要介绍了C++递归算法实例代码,还是比较不错的,运用了递归算法解决相关问题,这里分享给大家,需要的朋友可以参考下。
    2017-11-11
  • C语言 队列的实现全解析

    C语言 队列的实现全解析

    队列(Queue)与栈一样,是一种线性存储结构,它具有如下特点:队列中的数据元素遵循“先进先出”(First In First Out)的原则,简称FIFO结构。在队尾添加元素,在队头删除元素
    2022-04-04
  • VScode中C++头文件问题的终极解决方法详析

    VScode中C++头文件问题的终极解决方法详析

    最近使用VSCode编译C/C++时发现了问题,下面这篇文章主要给大家介绍了关于VScode中C++头文件问题的终极解决方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • VC++ 2019 "const char*"类型的实参与"LPCTSTR"类型的形参不兼容解决

    VC++ 2019 "const char*"类型的实参与"LPCTSTR"

    这篇文章主要给大家介绍了关于VC++ 2019 "const char*"类型的实参与"LPCTSTR"类型的形参不兼容的解决方法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-03-03
  • 学习C++编程的必备软件

    学习C++编程的必备软件

    本文给大家分享的是作者在学习使用C++进行编程的时候所用到的一些常用的软件,这里推荐给大家
    2017-04-04
  • C++派生访问说明符小记(推荐)

    C++派生访问说明符小记(推荐)

    下面小编就为大家带来一篇C++派生访问说明符小记(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • 如何用矩形法(梯形法)求定积分

    如何用矩形法(梯形法)求定积分

    思路就是将积分区间划分成n等份,然后将这n等份近似看成矩形(或梯形),然后对所有的矩形(或梯形)的面积进行求和
    2013-09-09
  • 详解C++编程中的条件判断语句if-else与switch的用法

    详解C++编程中的条件判断语句if-else与switch的用法

    这篇文章主要介绍了C++编程中的条件判断语句if-else与switch的用法,是C++入门学习中的基础知识,需要的朋友可以参考下
    2016-01-01
  • C++ map的简单使用实现

    C++ map的简单使用实现

    map是STL的一个关联容器,它以<key,value>一对一的形式存储,且map的内部自建一个红黑树,使得其可以自动排序,本文就介绍一下C++ map的简单使用,感兴趣的可以了解一下
    2021-05-05
  • C++的cout.tellp()和cout.seekp()语法介绍

    C++的cout.tellp()和cout.seekp()语法介绍

    无论是使用 cout 输出普通数据,用 cout.put() 输出指定字符,还是用 cout.write() 输出指定字符串,数据都会先放到输出流缓冲区,待缓冲区刷新,数据才会输出到指定位置,本文给大家介绍一下C++的cout.tellp()和cout.seekp()语法,需要的朋友可以参考下
    2023-09-09

最新评论