C++/CLI在vs上的安裝和初步使用教程
C++/CLI中見過這個(gè)符號:^
C++中我們用*
來表示一個(gè)指針,在C++/CLI中,我們用符號^
來表示句柄。
現(xiàn)在*
用來指定CRT heap上的原生指針,而句柄是安全指針
,它位于托管堆上。
你可以把句柄當(dāng)成引用
來考慮,和原生指針不同的是,他們不會引起內(nèi)存泄漏
,即便沒有對它們進(jìn)行適當(dāng)?shù)膭h除,因?yàn)镚C會處理這些問題,并且他們沒有一個(gè)固定的內(nèi)存地址,所以在執(zhí)行的時(shí)候它們會被移來移去。
%
對于^
就相當(dāng)于&
對于*
N* pn = new N;//分配在原生heap上 n& rn = *pn;//綁定一個(gè)普通引用到原生對象 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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
VC++?2019?"const?char*"類型的實(shí)參與"LPCTSTR"
這篇文章主要給大家介紹了關(guān)于VC++?2019?"const?char*"類型的實(shí)參與"LPCTSTR"類型的形參不兼容的解決方法,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-03-03詳解C++編程中的條件判斷語句if-else與switch的用法
這篇文章主要介紹了C++編程中的條件判斷語句if-else與switch的用法,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2016-01-01C++的cout.tellp()和cout.seekp()語法介紹
無論是使用 cout 輸出普通數(shù)據(jù),用 cout.put() 輸出指定字符,還是用 cout.write() 輸出指定字符串,數(shù)據(jù)都會先放到輸出流緩沖區(qū),待緩沖區(qū)刷新,數(shù)據(jù)才會輸出到指定位置,本文給大家介紹一下C++的cout.tellp()和cout.seekp()語法,需要的朋友可以參考下2023-09-09