CString 如何转换成Char*.

VS2008项目属性有Mutil-Byte和Unicode两种,Cstring中的字符采用TCHAT编码,而TCHAR在Unicode下是char 8位表示已个字符。在Mutil中是WCHAR即16位表示一个字节。

所有在Mutil-Byte中 char *p=(LPCTSTR)CString就正确。

在Unicode错误。因为Unicode编码项目中,此时为WCHAR了。即使强制转换也会出先数据丢失问题。

所以要用一下方法

头文件 #include "atlbase.h"

 

代码中:

 USES_CONVERSION; 

 LPCSTR *p=W2A(CString);

 

这样就有另外一个问题,如何实现LPCSTR 到CSTRING的转化呢?

  LPWSTR wst=A2W(P);

在Unicode下, CString就是LPWSTR类型。所以直接用就可以了。

 CString test=wst;

 

你可能感兴趣的:(CString 如何转换成Char*.)