int n = waveInGetNumDevs();
WAVEOUTCAPS tmpWAVEOUTCAPS;
for (int i = 0; i < n; i++) {
waveOutGetDevCaps(i, &tmpWAVEOUTCAPS, sizeof(tmpWAVEOUTCAPS));
waveDevs->Add(tmpWAVEOUTCAPS.szPname);
}
一開始我想這么獲取設備的名稱,但是發現這個結構里面szPname的長度限定為31位外加一個\0,換句話來說基本上設備名字都會無法完整顯示。
聽說可以使用directsound或者別的方法實作。哪位大俠能給一個完整的實體嗎?多謝!!!
uj5u.com熱心網友回復:
你 n 定義了輸入設備的數量卻要讀取輸出設備的細節......什么東東!!!!
uj5u.com熱心網友回復:
樓上沒做過就別評論可以嗎。uj5u.com熱心網友回復:
我也是虛心學習,如果我有錯可以指正我。不用帶怒氣吧......
因為我沒裝音效驅動,但我有幫你測驗阿!
好心被你這樣說.....
uj5u.com熱心網友回復:
你這部分我有在MSDN看到這說明The length of szPname is defined by the following macro in Mmsystem.h:
#define MAXPNAMELEN 32 /* max product name length (including NULL) */
到Mmsystem.h,把32改大一點試試..
uj5u.com熱心網友回復:
這個32不能修改,在Win7+的系統中,可以使用IMMDeviceEnumerator和IMMDeviceCollection介面來獲取完整的設備名.uj5u.com熱心網友回復:
學習了,所以意思是無法用在XP中嗎?uj5u.com熱心網友回復:
注冊表里應該可以取到完整的轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/130042.html
標籤:基礎類
