C++/CLI在vs上的安裝和初步使用教程
C++/CLI中見過(guò)這個(gè)符號(hào):^
C++中我們用*
來(lái)表示一個(gè)指針,在C++/CLI中,我們用符號(hào)^
來(lái)表示句柄。
現(xiàn)在*
用來(lái)指定CRT heap上的原生指針,而句柄是安全指針
,它位于托管堆上。
你可以把句柄當(dāng)成引用
來(lái)考慮,和原生指針不同的是,他們不會(huì)引起內(nèi)存泄漏
,即便沒(méi)有對(duì)它們進(jìn)行適當(dāng)?shù)膭h除,因?yàn)镚C會(huì)處理這些問(wèn)題,并且他們沒(méi)有一個(gè)固定的內(nèi)存地址,所以在執(zhí)行的時(shí)候它們會(huì)被移來(lái)移去。
%
對(duì)于^
就相當(dāng)于&
對(duì)于*
N* pn = new N;//分配在原生heap上 n& rn = *pn;//綁定一個(gè)普通引用到原生對(duì)象 R^ hr = gcnew R;//分配在CLI heap上 r% rr = *hr;//綁定跟蹤的引用到gc-lvalue
一 在VS2017/2019 安裝 C++/CLI的模塊支持
二 新建C++/CLI項(xiàng)目
三 添加源文件
String^ fileName = "textfile.txt"; StreamWriter^ sw = gcnew StreamWriter(fileName);
If you use the sample program, notice thatyou use the
gcnew
keyword instead ofnew
when creating a.NET object
,and thatgcnew 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; }
到此這篇關(guān)于C++/CLI在vs上的安裝和初步使用的文章就介紹到這了,更多相關(guān)C++ CLI安裝使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語(yǔ)言?隊(duì)列的實(shí)現(xiàn)全解析
隊(duì)列(Queue)與棧一樣,是一種線性存儲(chǔ)結(jié)構(gòu),它具有如下特點(diǎn):隊(duì)列中的數(shù)據(jù)元素遵循“先進(jìn)先出”(First?In?First?Out)的原則,簡(jiǎn)稱FIFO結(jié)構(gòu)。在隊(duì)尾添加元素,在隊(duì)頭刪除元素2022-04-04VC++?2019?"const?char*"類型的實(shí)參與"LPCTSTR"
這篇文章主要給大家介紹了關(guān)于VC++?2019?"const?char*"類型的實(shí)參與"LPCTSTR"類型的形參不兼容的解決方法,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-03-03詳解C++編程中的條件判斷語(yǔ)句if-else與switch的用法
這篇文章主要介紹了C++編程中的條件判斷語(yǔ)句if-else與switch的用法,是C++入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-01-01C++ map的簡(jiǎn)單使用實(shí)現(xiàn)
map是STL的一個(gè)關(guān)聯(lián)容器,它以<key,value>一對(duì)一的形式存儲(chǔ),且map的內(nèi)部自建一個(gè)紅黑樹,使得其可以自動(dòng)排序,本文就介紹一下C++ map的簡(jiǎn)單使用,感興趣的可以了解一下2021-05-05C++的cout.tellp()和cout.seekp()語(yǔ)法介紹
無(wú)論是使用 cout 輸出普通數(shù)據(jù),用 cout.put() 輸出指定字符,還是用 cout.write() 輸出指定字符串,數(shù)據(jù)都會(huì)先放到輸出流緩沖區(qū),待緩沖區(qū)刷新,數(shù)據(jù)才會(huì)輸出到指定位置,本文給大家介紹一下C++的cout.tellp()和cout.seekp()語(yǔ)法,需要的朋友可以參考下2023-09-09