TChar转QString

在转换到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
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容