对 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 可以捕获这个错误信息 !