1.步驟
- 獲取所有驅動器名稱的總長度
- 申請接收緩沖區內存
- 獲取驅動器目錄存入申請的堆內存區
- 遍歷接收緩沖區分離驅動器目錄
- 釋放內存空間
2、測試代碼
void CTreeTestDlg::FindDisk()
{
// 獲取系統分區驅動器字符串信息
size_t nSize = GetLogicalDriveStrings(0, NULL); // 驅動器總長度
TCHAR* pbuf = new TCHAR[1 + nSize]; // 緩沖區空間申請
GetLogicalDriveStrings(nSize, pbuf); // 獲取驅動器目錄
TCHAR* p = pbuf; // 臨時指針,用於訪問驅動器名稱
size_t nLen = _tcslen(p); // 驅動名字(如C:\)字符串長度
while (nLen > 0)
{
// 插入到樹形控件
m_tree.InsertItem(p, m_hItem);
// 計算下一個驅動器名稱首地址
p += nLen + 1;
nLen = _tcslen(p);
}
delete []pbuf; // 釋放緩沖區內存
}
3、測試效果

