如何在LPTSTR CString char *各个类型之间相互转换?

来源:百度知道 编辑:UC知道 时间:2024/06/05 13:33:40
特别是CString转换到char* 还有LPTSTR和CSTRING的转换

另外补分好的话
谢谢啊朋友
你留个qq好吗
你的回答好像和我问的稍微有些出入
或许需要你的解释下

我已经看到MSDN里CSTRING对LPCTSTR之间能转换了
但是不知道是否能转换后直接强制类型转换到LPTSTR

请再看看

//char to wchar
WCHAR* WChar(char *string)
{
WORD *wchr;
int wsize=MultiByteToWideChar(CP_ACP, NULL, string, strlen(string), NULL, 0);
wchr=new WORD[wsize+1];
MultiByteToWideChar(CP_ACP, NULL, string, strlen(string), wchr, wsize);
wchr[wsize]=0;
return wchr;
}

//wchar to char
char* Char(WCHAR *string)
{
char *chr;
chr=new char[wcslen(string)+1];
memset(chr, 0, wcslen(string)+1);
for(unsigned int i=0; i<wcslen(string);
{
chr[i]=(unsigned char)string[i];
}
return chr;
}

至于CString 到 char* 可以用GetString到 WCHAR* 或char*
注意返回的好像是一个 const 的 ,所以最好先强制转换一下。
然后再用上面的函数。
顺便说一下,大部分函数都支持宽字节,比如ifstream 、string
用宽字节就是 wifstream、wstring
CreateWindow的宽字节就是CreateWindowW
不用宽字节就是CreateWindowA
qq 648102143
在MFC中,一般要传递WCHAR* 或 char* 的都可以传递一个CString 对象。
首先从char 和 wchar_t 之间无法强制转换。CString 的GetString 函数会返回一个LPCWSTR 或