對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可以捕獲這個錯誤信息!