C++ 我在运行函数GetVolumeInformation()时会得到非常随机的结果
我想为我正在编写的程序获取特定驱动器(FAT32、NTFS、FAT16)的文件系统类型。但是当我运行这段代码时,我在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:
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。ATCHAR
是2个字节宽,因此您提供的数字是它应该是的2倍(…可能,)。由于您设置了数组的大小,您知道它是10
。或者,只需使用std::wcout
而不是std::cout
,如果TCHAR
映射到wchar\u t
,而不是char
(即,如果编译期间定义了UNICODE
)