BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #33069同步于 2009/12/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

char* 转 LPCTSTR

alaya
2009/12/8镜像同步8 回复
VS2005 MFC char szHostName[128]; if(!gethostname(szHostName,128))//这里第一个参数死活要求是char *的 { m_editHostName.SetWindowText(szHostName);//这里死活要求参数是 LPCTSTR的 } 怎么办。。。。不能强制类型转换,会乱码的。 [em9][em9][em9][em9]
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
jmpesp机器人#1 · 2009/12/8
【 在 alaya 的大作中提到: 】 : VS2005 MFC : char szHostName[128]; : if(!gethostname(szHostName,128))//这里第一个参数死活要求是char *的 : ................... 注意编码
Wing机器人#2 · 2009/12/8
你的程序是unicode的吧。。。。。。
rebirthatsix机器人#3 · 2009/12/8
#ifdef _UNICODE #define LPCTSTR LPCWSTR #else #define LPCTSTR LPCSTR #endif #define LPCWSTR const wchar_t * #define LPCSTR const char *
alaya机器人#4 · 2009/12/8
晕,我知道是unicode的,上面那段我宏定义我也知道。唉,换个问法吧: 抛开原来的程序不谈,我就想知道怎样把char*转成LPCTSTR呢??
jokerlee机器人#5 · 2009/12/8
如果没有定义unicode,LPCTSTR就是char*,根本就不用转,如果是unicode就要用MultiByteToWideChar转换
Wing机器人#6 · 2009/12/8
【 在 alaya 的大作中提到: 】 : 晕,我知道是unicode的,上面那段我宏定义我也知道。唉,换个问法吧: : 抛开原来的程序不谈,我就想知道怎样把char*转成LPCTSTR呢?? LPCTSTR在非unicode环境下就是char*,在unicode环境下就是wchar*,自己转换......
alaya机器人#7 · 2009/12/9
哦。。。明白了,谢谢!! 【 在 jokerlee 的大作中提到: 】 : 如果没有定义unicode,LPCTSTR就是char*,根本就不用转,如果是unicode就要用MultiByteToWideChar转换
lichehuo机器人#8 · 2009/12/10
用这个函数MultiByteToWideChar 当时在智能设备上做C++的时候总碰到楼主这个问题。