关于GetLogicalDriveStrings()

MSDN:
DWORD WINAPI GetLogicalDriveStrings( __in DWORD nBufferLength, __out LPTSTR lpBuffer );
对着msdn上的例子,写了个test出来:
 1 #include "iostream"
 2 #include "afxcmn.h"
 3 
 4 int main()
 5 {
 6     
 7     TCHAR *pLogicalDrives = new TCHAR[MAX_PATH];
 8     pLogicalDrives[0] = '\0';
 9     int nLen = GetLogicalDriveStrings(MAX_PATH-1,pLogicalDrives);
10     std::cout<<nLen<<std::endl;
11     int i = 0;
12     do 
13     {
14         
15         std::cout<<pLogicalDrives+i<<std::endl;
16         i += 4;
17     } while (i<nLen);
18     
19     delete[] pLogicalDrives;
20 
21    return 0;
22 
23 }

效果是:


我的硬盘有五个分区。CDEFG,GetLogicalDriveStrings返回来的nLen的值是20,每个分区占的位置是4字节。

而且GetLogicalDriveStrings的lpBuffer是这样排列的:

 

 

posted @ 2012-11-21 12:06  褪色的狼  阅读(416)  评论(1编辑  收藏  举报