原来是做VC6的,最头疼的事情是VS2005的字符问题。
今天又遇到一个,当使用char szString[6]声明时候,然后用wsprintfA来赋值。wsprintfA(szTime,"%i:%02i",nHour,nMinute);
由于下个函数要使用LPCTSTR的类型。所以又强制转换了一下。结果运行出来的时候显示是乱码。
以前听人说用TCHAR来做比较好,但是TCHAR对变量进行赋值的时候又有问题了。因为我搜到的赋值都如这种形式
TCHAR CfgFile[] = L"inis//SPU2-X.ini"; |
只能采取另一种方法了。
就是用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");