C++ 无法从‘;QString’;至‘;LPCWSTR’;在Qt内

C++ 无法从‘;QString’;至‘;LPCWSTR’;在Qt内,c++,qt,qt4,filesystems,C++,Qt,Qt4,Filesystems,我正在开发一个需要显示SD卡文件系统格式的应用程序。因为我找不到任何Qt API,所以我选择了一个windows APIGetVolumeInformation,并按如下方式操作: TCHAR volumeName[MAX_PATH + 1] = { 0 }; TCHAR fileSystemName[MAX_PATH + 1] = { 0 }; DWORD serialNumber = 0; DWORD maxComponentLen = 0; DWORD fileSy

我正在开发一个需要显示SD卡文件系统格式的应用程序。因为我找不到任何Qt API,所以我选择了一个windows APIGetVolumeInformation,并按如下方式操作:

TCHAR volumeName[MAX_PATH + 1] = { 0 };
   TCHAR fileSystemName[MAX_PATH + 1] = { 0 };
   DWORD serialNumber = 0;
   DWORD maxComponentLen = 0;
   DWORD fileSystemFlags = 0;

   LPCWSTR path = deviceData->m_strPath;

   if (GetVolumeInformation(
       path,
       volumeName,
       ARRAYSIZE(volumeName),
       &serialNumber,
       &maxComponentLen,
       &fileSystemFlags,
       fileSystemName,
       ARRAYSIZE(fileSystemName)))
       {
                 qDebug()<<fileSystemName[0];
                 qDebug()<<fileSystemName[1];
                 qDebug()<<fileSystemName[2];
                 qDebug()<<fileSystemName[3];
                 qDebug()<<fileSystemName[4];
       }
tcharvolumename[MAX_PATH+1]={0};
TCHAR fileSystemName[MAX_PATH+1]={0};
DWORD序列号=0;
DWORD maxComponentLen=0;
DWORD fileSystemFlags=0;
LPCWSTR path=deviceData->m_strPath;
如果(获取卷信息(
路径
卷名,
排列(卷名),
&序列号,
&maxComponentLen,
&文件系统标志,
文件系统名,
阵列化(文件系统名)))
{
qDebug()您可以尝试:

LPCWSTR path = deviceData->m_strPath.utf16();

谢谢兄弟。我的输出现在显示70 65 84 51 50。我希望它是一个字符串格式,我想显示。你能帮助我吗?:)就qDebug()@Gojira:你已经得到了字符串。70 65 84 51 50是unicode中的“FAT32”。使用
QString::fromUtf16(文件系统名)
将其转换为
QString
。感谢hpsMouse和Pukku:)