char * 或char[] 转 LPCTSTR 类型
问题描述:
今天在想在MFC的IP显示控件中显示本机IP地址,于是调用了SetDlgItemText()函数。结果显示:
尝试解决未果
经验告诉我:这只是一个简单的兼容性问题,将 slzp 强制转成 LPCTSTR 类型就行,结果显示乱码:
于是意识到这是一个字符编码问题。尝试搜索,大量的回答都是加 _T() 这个宏定义,但是该宏定义只能转换字符串常量,并根据参数决定调用A还是W类型函数,并不能进行字符指针的转换。
转变思路
可不可以定义一个临时变量为 LPCTSTR 类型,将char*的字符数组转换成 LPCTSTR类型再传入参数即可。经过搜索,插入如下代码最终完美解决了该问题。
WCHAR* szForMat