将QString转换为LPCWSTR qt c ++

时间:2014-11-20 17:32:33

标签: c++ qt

目前我正在尝试将QString转换为将LPCWSTR中使用的URLDownloadToFile()。以下是我当前代码的简单版本:

QString url = "http://whatever_file...";
HRESULT hRez = URLDownloadToFile(NULL, (LPCWSTR)url.toLocal8Bit().constData(), TEXT("C:\\etc..."), 0, NULL);

我发现转换在QString转换为LPCWSTR的过程中找到了效果。我在编程领域相当新,我只是在URLDownloadToFile需要的时候给该解决方案添加了一封信。它没有返回错误,但下载失败。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:3)

要从QString获取LPCWSTR,您可以使用QString::constData方法,因为QChar是2字节Unicode符号,与WCHAR完全相同(如果wchar_t在目标计算机上是2字节)。

我知道你使用" TEXT"与" LPCWSTR"在一行中的宏。你应该使用" L"代替。

" TEXT"创建用于与" LPCTSTR"成对使用宏。您可以阅读有关它们的this