VS2005使用 Unicode 字符集!

来源:互联网 发布:sql怎么导出数据库 编辑:程序博客网 时间:2024/06/06 16:48

原来是做VC6的,最头疼的事情是VS2005的字符问题。

今天又遇到一个,当使用char szString[6]声明时候,然后用wsprintfA来赋值。wsprintfA(szTime,"%i:%02i",nHour,nMinute);

由于下个函数要使用LPCTSTR的类型。所以又强制转换了一下。结果运行出来的时候显示是乱码。

 以前听人说用TCHAR来做比较好,但是TCHAR对变量进行赋值的时候又有问题了。因为我搜到的赋值都如这种形式 TCHAR CfgFile[] = L"inis//SPU2-X.ini"; 而我要赋值的为变量,使用wsprintfA也提示说不行。真的很头疼。

 只能采取另一种方法了。

就是用str代替。

我将str强制装换成LPCTSTR这样就可以了正常显示了。

不过总感觉绕了个弯路。

----------------------------------------------------------------

找到种解决办法。

int 转char

使用sprintf(szChar,"",nInt);

char 转TCHAR

可以先使用 LPCTSTR lpStmp=A2T(szChar);

使用A2T的时候前面要加上一句 USES_CONVERSION;

然后使用lstrcpt(szTCHAR,lpStmp);

 

以上可以解决int char TCHAR LPCTSTR之间的转换

-------------------------------------------------------------------

下面是网上转的

 

char<->TCHAR
A2T、T2A

TCHAR tchar = _T(" hehe ") ,默认T为W的话,可以TCHAR tchar =L" hehe "


BSTR、char*和CString转换
http://www.cnblogs.com/justin/archive/2005/03/24/125057.aspx

BSTR bstr;
CString cstr = CComBSTR(bstr);//好用

char*转换成BSTR
_bstr_t b = bstrText;
char* lpszText2 = b;

char*转换成BSTR
BSTR bstrText = _bstr_t("This is a test");

原创粉丝点击