C++ 我在运行函数GetVolumeInformation()时会得到非常随机的结果

C++ 我在运行函数GetVolumeInformation()时会得到非常随机的结果,c++,windows,winapi,filesystems,C++,Windows,Winapi,Filesystems,我想为我正在编写的程序获取特定驱动器(FAT32、NTFS、FAT16)的文件系统类型。但是当我运行这段代码时,我在szFileSystemName变量中得到了看似随机的结果。非常感谢您的帮助 #include <Windows.h> #include <iostream> using namespace std; int main() { TCHAR szFileSystemName[10]; ::GetVolumeInformation(L"C:

我想为我正在编写的程序获取特定驱动器(FAT32、NTFS、FAT16)的文件系统类型。但是当我运行这段代码时,我在
szFileSystemName
变量中得到了看似随机的结果。非常感谢您的帮助

#include <Windows.h>
#include <iostream>

using namespace std; 

int main() 
{
   TCHAR szFileSystemName[10]; 
   ::GetVolumeInformation(L"C:\\", NULL, 0, NULL, NULL, NULL, 
   szFileSystemName, sizeof (szFileSystemName));

   cout << szFileSystemName; 
   cin.get(); 
}
#包括
#包括
使用名称空间std;
int main()
{
TCHAR szFileSystemName[10];
::GetVolumeInformation(L“C:\\”,NULL,0,NULL,NULL,NULL,
szFileSystemName,sizeof(szFileSystemName));

你能检查函数的返回值吗?它可能会失败,你可以得到更多关于为什么使用的信息。如果在运行函数GetLastError()时,它返回false(0)@RbMm谢谢,我知道错误在哪里了。我运行了它,并使用消息框打印了它,它成功了。注意
sizeof(szFileSystemName)
提供对象中的字节数(或
char
s),而不是
TCHAR
s。A
TCHAR
是2个字节宽,因此您提供的数字是它应该是的2倍(…可能,)。由于您设置了数组的大小,您知道它是
10
。或者,只需使用
std::wcout
而不是
std::cout
,如果
TCHAR
映射到
wchar\u t
,而不是
char
(即,如果编译期间定义了
UNICODE