精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
近期用C#开发一个录音软件,.NET用的4.8版本,VS2019开发,在Win10机器安装没有问题,但是在Win7 32位版本下不行。下面列出解决问题过程:
安装成功后,用制作的安装包安装软件执行正常,不出Unable to load winmm.dll和0x8007007f错误。就怀疑是目标机器环境问题。
觉得是环境问题,就找好的winmm.dll来替换,先是用Win10机器环境下的32位winmm.dll替换不了,再用虚拟机里32位的winmm.dll来替换,还是替换不了,winmm.dll在系统目录环境下是替换不了的,就是用管理员身份获取权限,也是替换不了,没办法,比对问题机器上的winmm.dll和虚拟机里正确的winmm.dll,大小一样,也就不想替换的方向了:并且问题机器上的winmm.dll用的api也有,觉得没必要替换。
winmm.dll本身没问题,就想是不是导入机制不对,对比资料,没问题。换了Dllimport下面的哪一行里的函数名,带上W后缀,功能不正常,也就不换了。
前后都无思路,没办法再看Exe所在目录,发现exe目录下有winmm.dll,也有这个winmm.dll依赖的dll,抱着试试的态度,把这些dll删除了,问题解决。
不同系统下的dll不要混用,Win10下的winmm.dll不能出现在win7环境下。