Windows編程的兼容性問題



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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章