問題出現在軟體釋出之後,在個别使用者的電腦上的win7系統運作我們的軟體總是無法運作,運作就直接給出“XXX module 已停止工作”的提示框,但是如果運作選中運作程式右鍵,在相容性那裡選擇“XP (sp3)”後又能正常運作。但是更奇怪的是在我們公司裡的win7系統同樣運作,無需選擇相容性,直接就能正常運作,而且很多使用者上的電腦也是win7系統,同樣也是能正常運作。自己的系統上怎麼樣也重制不了這種問題,後來沒辦法,隻能把每條語句都列印出來,遠端有問題的系統上,一步一步跟蹤。
後來就發現是這個個API出了問題:
MMRESULT mixerGetLineInfo(
HMIXEROBJ hmxobj,
LPMIXERLINE pmxl,
DWORD fdwInfo
);
後來在微軟的官網查了一下,其中的一段:
Requirements
Windows NT/2000/XP: Included in Windows NT 3.1 and later.
Windows 95/98/Me: Included in Windows 95 and later.
Header: Declared in Mmsystem.h; include Windows.h.
Library: Use Winmm.lib.
Unicode: Implemented as Unicode and ANSI versions on Windows NT/2000/XP.
那就隻有把它給注釋掉了,反正暫時也沒什麼用。
另外,在部分的XP系統上,用戶端會出現“axwin frame window 系統錯誤”,後來排查後發現是“huishiCamInterface.dll”裡有個api有問題,也是把它注釋掉,出問題的用戶端也不再彈出這樣的錯誤了:
CNormalAudioHelper::PrepareAudioInputDevList();
CNormalAudioHelper::GetAudioInputDevList();