現在、テキスト ボックスからテキストを取得し、const char* に変換するのに忙しいです。次のコードがあります。
System::String^ host = textBoxHostadres->Text;
const char* host2 = (const char*)(void*)Marshal::StringToHGlobalAnsi(host);
//system(host2); //What to do with this?
Marshal::FreeHGlobal(host2);
の下に赤線 (Visual Studio 2012) が表示されMarshal::FreeHGlobal
ます。textbox
からテキストを取得してに取得するための正しい方向を教えてもらえますconst char*
か? 最初の行はうまく機能し、デバッグを通じてテキストがキャプチャされていることがわかります。
アップデート:
System::String^ host = textBoxHostadres->Text;
pin_ptr<const wchar_t> wch = PtrToStringChars(host);
// Convert to a char*
size_t origsize = wcslen(wch) + 1;
const size_t newsize = 100;
size_t convertedChars = 0;
char nstring[newsize];
wcstombs_s(&convertedChars, nstring, origsize, wch, _TRUNCATE);
strcat_s(nstring, " (char *)");
const char* host2 = (const char*)(void*)Marshal::StringToHGlobalAnsi(host);
system(host2);
traceroute hostAddress(host2);