在Visual C++ 中從System::String 轉換為Char - C#
文章推薦指數: 80 %
本文說明在Visual C++ 中使用Managed 擴充功能,從System::String* 轉換成char* 的幾種方式。
跳到主要內容
已不再支援此瀏覽器。
請升級至MicrosoftEdge,以利用最新功能、安全性更新和技術支援。
下載MicrosoftEdge
其他資訊
目錄
結束焦點模式
閱讀英文
儲存
目錄
閱讀英文
儲存
編輯
Twitter
LinkedIn
Facebook
電子郵件
目錄
在VisualC++中從System::String轉換為Char
發行項
05/08/2022
2位參與者
本文內容
本文說明在VisualC++中使用Managed擴充功能從轉換System::String*char*成的數種方式。
原始產品版本: VisualC++
原始KB編號: 311259
摘要
本文參考下列Microsoft.NETFramework類別庫命名空間:
System::Runtime::InteropServices
Msclr::interop
本文討論使用下列方法從System::String*char*轉換成的數種方式:
VisualC++.NET2002和VisualC++.NET2003中C++的Managed延伸模組
VisualC++2005和VisualC++2008中的C++/CLI
方法1
PtrToStringChars提供實際String物件的內部指標。
如果您將此指標傳遞至Unmanaged函式呼叫,您必須先釘選指標,以確保物件不會在非同步垃圾收集程式期間移動:
//#include
這個方法會配置必要的原生堆積記憶體:
//usingnamespaceSystem::Runtime::InteropServices;
System::String*str=S"Helloworld\n";
char*str2=(char*)(void*)Marshal::StringToHGlobalAnsi(str);
printf(str2);
Marshal::FreeHGlobal(str2);
注意
在VisualC++2005和VisualC++2008中,您必須將CommonLanguageRuntime支援編譯器選項新增(/clr:oldSyntax),才能成功編譯先前的程式碼範例。
若要新增CommonLanguageRuntime支援編譯器選項,請遵循下列步驟:
按一下[Project],然後按一下[專案名稱屬性]。
注意
ProjectName是專案名稱的預留位置。
展開[組態屬性],然後按一下[一般]。
在右窗格中,按一下以在CommonLanguageRuntime支援專案設定中選取[CommonLanguageRuntime支援]、[舊語法(/clr:oldSyntax)]。
在[撥號對應表(電話內容)]方塊中,按一下[瀏覽]以尋找使用者的撥號對應表。
如需CommonLanguageRuntime支援編譯器選項的詳細資訊,請造訪下列MicrosoftDeveloperNetwork(MSDN)網站:
/clr(CommonLanguageRuntime編譯)
這些步驟適用于整篇文章。
方法3
VC7CString類別有一個建構函式,可接受ManagedString指標,並載入CString及其內容:
//#include
//#include
它會使用VisualC++2005中引進的新C++/CLI語法,以及在VisualC++2008中引進的新msclr命名空間程式碼。
若要成功編譯此程式碼,您必須在VisualC++2008中使用/clrC++編譯器參數。
ManagedExtensionsforC++VisualC++2002或VisualC++2003(範例程式碼)
//compileroption:cl/clr
#include
延伸文章資訊
- 1c++ 中char 與string 之間的相互轉換 - 程式人生
語法: const char *c_str(); c_str()函式返回一個指向正規C字串的指標, 內容與本string串相同. 這是為了與c語言相容,在c語言中沒有string型別,故必須 ...
- 2[C++] string 和char[]互轉(string and char[] transform)
在使用C++處理字串時,時常會char[]和string互轉,來符合接下來要使用的函式中參數的型態,假如可以互轉自如,那麼處理起檔案資料會更簡單便利喔! 我測試 ...
- 3string 轉成char 的方法 - 程序員學院
string 轉成char 的方法,string 是c 標準庫裡面其中一個,封裝了對字串的操作把string轉換為char 有3中方法1。data 如string str.
- 4置頂char轉string 和string轉char - 興趣使然- 痞客邦
形態上的轉換1. String to Char 呼叫string裡的c_str()即可ex: string exa; exa.c_str(); 2. Char to String.
- 5在Visual C++ 中從System::String 轉換為Char - C#
本文說明在Visual C++ 中使用Managed 擴充功能,從System::String* 轉換成char* 的幾種方式。