在转换到QString之前,需要先明确TChar此时代表什么类型。
在 Visual Studio 中, 选择【项目属性页】–》【配置属性】–》【高级】页面, 查看【字符集】选项。
如果选定的是【使用Unicode字符集】, 那么TChar代表wchar_t。如果选择其他的, TChar代表char。
如果你想要验证这一点,那么就写如下的代码, 需改【字符集】选项后,亲自看看TChar的定义即可。
#include <tchar.h>
int test()
{
TCHAR hi[128] = { 0 };
}
当TCHAR代表wchar_t时, 你的字符串前面,要加一个L开头。Windows.h中定义的TEXT()宏和tchar.h中定义的_T宏就是干这件事的。下面三个函数,实则是等价的。
int test()
{
const TCHAR* hiMsg = L"Hiiii";
}
#include <tchar.h>
int test1()
{
const TCHAR* hiMsg = _T("Hiii");
}
#include <Windows.h>
int test2()
{
const TCHAR* hiMsg = TEXT("Hiii");
}
可见, 把TCHAR转换为QString超级简单,只要明确TChar代表什么类型即可。如果TChar当前代表的是char,那么你可以赋值给QString。 如果TChar当前代表的是wchar_t,那么你可以使用如下的API来做。
// #include < Windows.h>
QString iAmFromTChar = QString::fromWCharArray(TEXT("I am from TChar"));
// #include <tchar.h>
QString iAmFromTChar = QString::fromWCharArray(_T("I am from TChar"));
© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END

















暂无评论内容