我试图用c ++中的winapi获取卷序列号
我有以下代码:
DWORD VolumeSerialNumber=0;
GetVolumeInformation(L"c:\\", NULL, NULL, &VolumeSerialNumber, NULL, NULL, NULL, NULL);
Run Code Online (Sandbox Code Playgroud)
它工作正常并返回,VolumeSerialNumber=571477456
但在cmd我使用时,dir我得到:
C:\Users\User>dir
Volume in drive C is Windows
Volume Serial Number is 2210-0DD0
Run Code Online (Sandbox Code Playgroud)
我怎么转换571477456到2210-0DD0?
您只需要使用%X格式说明符以十六进制而不是十进制打印值:
printf("VolumeSerialNumber: 0x%X\n", VolumeSerialNumber);
Run Code Online (Sandbox Code Playgroud)
哪个会输出:
0x22100dd0
Run Code Online (Sandbox Code Playgroud)
如果您确实需要完全相同的输出,可以使用和宏DWORD将其分隔为下部和上部:WORDSLOWORDHIWORD
printf("Volume Serial Number is %04X-%04X\n",
HIWORD(VolumeSerialNumber),
LOWORD(VolumeSerialNumber));
Run Code Online (Sandbox Code Playgroud)
哪个会输出:
Volume Serial Number is 2210-0DD0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4819 次 |
| 最近记录: |