我想使用 GetVolumeInformation 调用来检索可移动设备的名称。我可以很好地检索名称并将其存储到 TCHAR 数组变量 szVolNameBuff 中。这是我的代码:
// Get Volume Information to check for NTFS or FAT
TCHAR szFileSys[256];
TCHAR szVolNameBuff[256];
DWORD dwSerial = 0;
DWORD dwMFL = 0;
DWORD dwSysFlags = 0;
bool bSuccess;
char fileType[255];
int bSuccessdebug = 0;
//LPCTSTR temp = _T("E:\\"); For debugging only
bSuccess = GetVolumeInformation(drivePath,
szVolNameBuff,
sizeof(szVolNameBuff),
&dwSerial,
&dwMFL,
&dwSysFlags,
szFileSys,
sizeof(szFileSys));
当我尝试使用以下行打印变量的内容时:
printf("szVolNameBuff holds: %s \n", &szVolNameBuff);
我得到“T”的输出,而不是驱动器名称“Transcend”。我用 Visual Studio 2008 对其进行了调试,发现 TCHAR 数组将名称存储为: [0] 'T' [1] 0 [2] 'R' [3] 0 [4] 'A' [5] 0 [ 6]'N' [7] 0
等等等等。这是为什么?我希望数组将单词存储为:
[0] 'T' [1] 'R' [2] 'A' [3] 'N' [4] 'S'
稍后将其用于字符串连接。有没有办法来解决这个问题?