对
GetLogicalDriveStrings
的理解
:
函数原形
:
DWORD GetLogicalDriveStrings(
DWORD nBufferLength, // size of buffer
LPTSTR lpBuffer // drive strings
buffer
);
说明 :GetLogicalDriveStrings 函数将一个缓冲区 lpBuffer 填入在计算机上存在的硬盘盘符 .
参数说明
:
nBufferLength
是缓冲区
lpBuffer
的大小
,
以字节为单位
.
它的大小不包含最后的空字符
.
如果它的值为零
,
缓冲区不可用
.
lpBuffer
指向一个接收各种以零结尾的字符串缓冲区
,
一个空字符用来区分各个可用硬盘的
,
最后在末尾有再以空字符结尾
,
假如
你的电脑上有
C,D
两个硬盘盘符
,
则它能得到一个字符串是
:
'C',':','/',' ','D',':','/',' ',' '
即
:C:/<null>D:/<null><null>
返回值
:
如果函数成功结束
,
返回值是获得的字符串长度
,
以字节为单位
,
不包括最后的一个空字符
,
好像上面的字符串获得的长度就是
8;
硬盘
盘符的个数自乘以
4
就是了
;
记住
:
一个
ANSI-ASCII
码的空字符是一个字节
,
而一个
Unicode
码的空字符是两个字节
.
如果这个缓冲区不
够大
,
返回值会比
nBufferLength
大
,
这是缓冲区要求去获得全部硬盘盘符的原因
.
如果函数失败 , 这个返回值是 0; 用 GetLastError 可以捕获这个错误信息 !