gpt4 book ai didi

visual-c++ - VC++ : how-to convert CString to TCHAR*

转载 作者:行者123 更新时间:2023-12-03 00:26:06 44 4
gpt4 key购买 nike

VC++:如何将 CString 值转换为 TCHAR*。一个方法是 GetBuffer(..) 函数。有没有其他方法可以将 CString 转换为 TCHAR*。

最佳答案

CString::GetBuffer() 不进行任何转换,它提供对字符串的直接访问。

要复制CString:

TCHAR* buf = _tcsdup(str);
free(buf);

TCHAR* buf = new TCHAR[str.GetLength() + 1];
_tcscpy_s(buf, str.GetLength() + 1, str);
delete[]buf;

但是上面的代码通常没有用。您可能想像这样修改它:

TCHAR buf[300];
_tcscpy_s(buf, TEXT("text"));

通常您需要将数据读入缓冲区,因此您希望缓冲区大小大于当前大小。

或者您可以只使用CString::GetBuffer(),您可能还想增大缓冲区大小。

GetWindowText(hwnd, str.GetBuffer(300), 300);
str.ReleaseBuffer(); //release immediately
TRACE(TEXT("%s\n"), str);

在其他情况下,您只需要 const cast const TCHAR* cstr = str;

最后,TCHAR 并不是很有用。如果您的代码与 ANSI 和 unicode 兼容,那么您不妨将其设为仅 unicode。但这只是一个建议。

关于visual-c++ - VC++ : how-to convert CString to TCHAR*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30429976/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com