问题出现在软件发布之后,在个别用户的电脑上的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();