對GetLogicalDriveStrings的理解:
函數(shù)原形:
DWORD GetLogicalDriveStrings(
DWORD nBufferLength, // size of buffer
LPTSTR lpBuffer // drive strings buffer
);
說明:GetLogicalDriveStrings函數(shù)將一個緩沖區(qū)lpBuffer填入在計算機上存在的硬盤盤符.
參數(shù)說明:
nBufferLength是緩沖區(qū)lpBuffer的大小,以字節(jié)為單位.它的大小不包含最后的空字符.如果它的值為零,緩沖區(qū)不可用.
lpBuffer指向一個接收各種以零結(jié)尾的字符串緩沖區(qū),一個空字符用來區(qū)分各個可用硬盤的,最后在末尾有再以空字符結(jié)尾,假如
你的電腦上有C,D兩個硬盤盤符,則它能得到一個字符串是:
'C',':','\',' ','D',':','\',' ',' '
即:C:\<null>D:\<null><null>
返回值:
如果函數(shù)成功結(jié)束,返回值是獲得的字符串長度,以字節(jié)為單位,不包括最后的一個空字符,好像上面的字符串獲得的長度就是8;硬盤
盤符的個數(shù)自乘以4就是了;記住:一個ANSI-ASCII碼的空字符是一個字節(jié),而一個Unicode碼的空字符是兩個字節(jié).如果這個緩沖區(qū)不
夠大,返回值會比nBufferLength大,這是緩沖區(qū)要求去獲得全部硬盤盤符的原因.
如果函數(shù)失敗,這個返回值是0;用GetLastError可以捕獲這個錯誤信息!