問題出現在軟件發佈之後,在個別用戶的電腦上的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();