将CString转换为字符数组?

yes*_*aaj 7 c++ char cstring visual-c++

如何将MFC中的CString转换为char [](字符数组)

sha*_*oth 9

您使用CString :: GetBuffer()来获取TCHAR [] - 指向缓冲区的指针.如果编译时没有定义UNICODE就足够了 - TCHAR与char相同,否则你将不得不分配一个单独的缓冲区并使用WideCharToMultiByte()进行转换.


小智 5

我为此苦苦挣扎,但我现在使用的是:(UNICODE 友好)

CString strCommand("我要发送到 DLL 的文本。");

**

char strPass[256];
strcpy_s( strPass, CStringA(strCommand).GetString() );
Run Code Online (Sandbox Code Playgroud)

**

// CStringA 是 CString 的非宽/unicode 字符版本,然后这会将您的以 null 结尾的 char 数组放入 strPass 中。

另外,如果您控制另一端的 DLL,请将参数指定为:

const char* str参数

而不是

char str参数*

将“可能”为您转换 CStrings,默认转换通常是有效的。


Nav*_*een 3

您可以使用GetBuffer函数从 CString 获取字符缓冲区。

  • 类型是LPTSTR,如果定义了UNICODE、_UNICODE,strcpy将不起作用。 (4认同)