LPSTR(char*)和LPWSTR的转换
可以使用下面的ATL宏来进行,最好是将变量定义成TCHAR、LPTSTR等T类型,可以避免转换。
ATL宏介绍:
A2BSTR OLE2A T2AW2A
A2COLE OLE2BSTRT2BSTRW2BSTR
A2CT OLE2CA T2CA W2CA
A2CWOLE2CT T2COLEW2COLE
A2OLE OLE2CW T2CW W2CT
A2TOLE2TT2OLEW2OLE
A2W OLE2W T2W W2T
A :ANSI 字符串,也就是 MBCS。
W、OLE 宽字符串,也就是 UNICODE。
T 中间类仿衡悔型T。如果定义了 _UNICODE,则T表示W;如果定义了 _MBCS,则T表示A
C const 的缩写
利用这些宏,可以快速的进行各种字符间的转换。使用备正前必须包含头文件,并且申明USER_CONVERSION;使用 ATL 转换宏,由拦没于不用释放临时空间,所以使用起来非常方便。但是考虑到栈空间的尺寸(VC 默认2M),使用时要注意几点:
#include <stdlib.h>//这腔野包含这个头文件 CString str(TEXT("12.3"))float a=(float)wcstod(str,NULL)/亩早/wcstod这个函数迅圆雀是把CString转成double的,再把double强转成float就行了1、头文件加入胡差这个#include <atlconv.h>
2、要用到temp的地方这么写:T2A(temp)
3、磨明如果是VC6,要用的那个函数里面裤游皮最开头加上一行
USES_CONVERSION
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)