我知道char转换为Tchar的语法是
_T("hello")
但是如果括号中的是变量怎么处理.?
例如:
char str[10] = "hello"
我觉得就应该写成 _T(str) .
但是调试的时候却出错了..
提示 “Lstr”: 未声明的标识符..
请问如果括号中是变量的话应该怎么来转换,谢谢.
_T("hello")
但是如果括号中的是变量怎么处理.?
例如:
char str[10] = "hello"
我觉得就应该写成 _T(str) .
但是调试的时候却出错了..
提示 “Lstr”: 未声明的标识符..
请问如果括号中是变量的话应该怎么来转换,谢谢.
解决方案 »
- 编辑框的错误子类化操作,竟然会影响到对话框的窗口函数?
- mfc 窗口显示和隐藏的 问题
- 如何在CPropertyPage中以响应OnCtrlColor的方法修改GroupBox的背景颜色?
- 能否让CHtmlView连接一个Socket?
- VC初学者,Visual c++面向对象与可视化程序设计的第一个程序举例,怎么运行呀
- 关于按纽
- 如何用API实现 try{}catch{}
- 如何得到一个文件夹的所有子文件夹和文件?
- WM_COPYDATA 问题
- 帮帮菜鸟吧!
- warning C4275: non dll-interface class 'CFrameMgr' used as base for dll-interface class 'XApp' 问题求解
- 关于SCROLLBARINFO 结构问题
gothin,你在定义时,就应该用TCHAR来替换char。
例如
TCHAR str[10] = _T("hello")
而不是把_T(str)这样用
如果不用那样转换的话,我今天的问题就不会存在了.
你说的方法我知道,可能我现在的问题是如果char是变量我应该怎么处理.
楼上有人说MultiByteToWideChar可以转..但是百度了很久,还是不知道怎么处理.
WCHAR szW[100]; //A Unicode string buffer//Normal sprintf:all strings are ANSI
sprintf(szA, "%s","ANSI Str");//Converts Unicode string to ANSI
sprintf(szA,"%S",L"Unicode Str");//Normal swprintf:all strings are Unicode
swprintf(szW,L"%s",L"Unicode Str");//Converts ANSI string to Unicode
swprintf(szW,L"%S", "ANSI Str");
我在程序里先是这么写的: TCHAR Name[100] = _T("Hello");调试的时候完全正常,没有错误,但是我按照下面这样写: char strUsr[10] = "Hello";
TCHAR Name[100] = _T(strUsr);然后按调试的时候就提示TCHAR Name[100] = _T(strUsr)有错误.
错误信息是:“LstrUsr”: 未声明的标识符。
重点是我现在的程序没有其他的办法,必须牵涉到把一个char类型的变量转换成TCHAR.
如果我之前就一直定义TCHAR,就不能把另一个void的char类型的参数传递过来,
但是如果我定义char的话,就出现现在的情况了..
头都想大了,一直想不出该怎么办.所以,拜托各位了.. 真的是头都大了,想了一下午了..
TCHAR Name[100];
sprintf(Name, "%s", strUsr);
TCHAR Name[100];
MultiByteToWideChar(CP_ACP, 0, strUsr, -1, Name, 100);顺便提一下,如果不是Unicode字符集,就不需要转换,直接复制即可,如果不确定是否使用Unicode字符集,可以这样写:
char strUsr[10] = "Hello";
TCHAR Name[100];
#ifdef UNICODE
MultiByteToWideChar(CP_ACP, 0, strUsr, -1, Name, 100);
#else
strcpy(Name, strUsr);
#endif