![](/img/trans.png)
[英]Unmanaged char * array to managed System::String in managed C++
[英]WINFORM C++ Managed string->unmanaged string produces unexpected results when combined with fstream
對。 所以我正在嘗試這樣做:
String^ ai = textBox4->Text;
char* towrite = (char*) Marshal::StringToHGlobalAnsi(ai ).ToPointer();
Marshal::FreeHGlobal(IntPtr(towrite));
string write = string(towrite);
ofstream filea;
filea.open("Logtoreadfrom.txt");
filea<< write;
filea.close();
我試圖將文本從textBox4復制到我創建的文件的地方。
我從文本框中將托管字符串“ ai”設為文本,通過從StringToHGlobalAnsi命令進行編組將其轉換為要寫入的char,然后將非托管字符串寫入定義為char towrite
我定義文件,創建文件,寫入文件a,關閉文件a。
當我打開文件時,我的結果通常由與我輸入的文本無關的隨機字母組成。
我以為我做錯了什么,所以誰能指出在哪里?
您釋放包含非托管字符串的內存,然后嘗試使用它。 嘗試這個:
String^ ai = textBox4->Text;
char* towrite = (char*) Marshal::StringToHGlobalAnsi(ai ).ToPointer();
string write = string(towrite);
Marshal::FreeHGlobal(IntPtr(towrite));
ofstream filea;
filea.open("Logtoreadfrom.txt");
filea<< write;
filea.close();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.