C++ 无法从‘;QString’;至‘;LPCWSTR’;在Qt内
我正在开发一个需要显示SD卡文件系统格式的应用程序。因为我找不到任何Qt API,所以我选择了一个windows APIGetVolumeInformation,并按如下方式操作: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
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:)