最近在调试WM下的程序,用到了MP3播放功能.
因为wm支持wmp(windows media player,绕嘴),所以就直接调用了wmplib.dll来播放mp3.
因为调试时,使用的是wm6模拟器,关闭程序就直接按停止调试按钮,所以开始时一切正常.但后来要部署到要部署到设备时,才注意到点击关闭按钮(不是那个×,而是自己做的,调用Application.Exit方法)后,程序并没有真正退出.很明显,是某个资源没有释放.
由于我调用的控件中,几乎全部是.net下的托管类,所以唯一的可能就只有wmp了.做个了小实验,确定就是wmplib没有释放造成的.
本来以为wmplib下的close方法,会释放掉资源,但通过实验结果,证明根本没有,那就只能用其他方法了.
在WinForm下时,关闭程序可以直接使用End.虽然不鼓励,但这个办法确实能杀掉"自己".WM下不存在这个方法,就只能从非托管方向上找办法了.
正好在MSDN上,看到了解决办法.就拿来分享一下吧.
这之后,正常调用Application.Exit方法,就能正确的关闭程序了.Winform下,与此相同.