获取TextBox文本到TCHAR *缓冲区

时间:2013-06-17 09:22:48

标签: visual-c++

我是Win Forms编程的新手,并尝试了一切可能的方法,但无济于事。我的问题是将文本框的内容放入WCHAR *缓冲区,如下所示:

String^ strTemp = tbSrc->Text; // tbSrc is a simple textbox
TCHAR* tszTemp = new TCHAR[strTemp->Length + 1]; // Allocate TCHAR buffer
strTemp->CopyTo(0, tszTemp, 0, strTemp->Length); 
// **Won't compile as tszTemp is not an array type**
tszTemp[strTemp->Length] = NULL;
...

这个例子显然不起作用。我插入了CopyTo来说明我的问题。我不知道如何解决这个问题。有人可以提供一些帮助。非常感谢。

1 个答案:

答案 0 :(得分:0)

假设你正在编译一个UNICODE项目(即TCHARwchar_t),你可以做这样的事情

String^ strTemp = tbSrc->Text; // tbSrc is a simple textbox

// use marshalling to get wchar_t
IntPtr pString = Marshal::StringToCoTaskMemAuto(strTemp);
wchar_t *szWideChar = (wchar_t*)pString.ToPointer();

// ... do what you want with szWideChar here ...

// free the marshalled object
Marshal::FreeHGlobal(pString);