软件在不同操作系统或者计算机不能正常运行问题解决

  工作中经常碰到原来Win 7能够运行的软件,换到Win 10下不能运行,尤其是64位下不能运行;或者在A计算机上能运行,而在B计算机上出现错误。出现这些问题的根本原因,是缺少某个组件或动态链接库。原则上而言,Win 10 64位原生支持32位软件,也就是说不做任何修改可以直接运行。但在实际中经常出现不能运行的情况,最近连续遇到几起这样的事情。其根本原因是Win 7本身包含了很多的组件和动态链接库,而Win 10将一些较老的组件和动态链接库去掉了,导致出现不能运行的问题。下面举例说明:

  1、单位有使用了Access 2003数据库的软件在Win 10 64位上无法运行。该问题困扰时间较久,通过分析后发现,应该是缺某个组件。通过搜索发现,Win 7以后不再提供Microsoft Office 12.0 Access Database Engine OLE DB Provider(12.0就是2007,2007兼容2003),需要下载Microsoft Office Access Database Engine 2007,年初微软官网上可以下载,目前已经不再提供下载。下载AccessDatabaseEngine.exe 64位版安装解决问题。

  2、单位的一个VB 6.0开发的专业软件,在开发计算机之外的计算机无法运行。原因是缺各种动态链接库。根据软件错误提示本机或在Internet搜索相应的动态链接库打包安装或批处理安装即可。

  3、同事昨天使用开源的C++控件,采用Visual Studio 2010编译后在其他计算机上运行出错。使用免费工具Dependency Walker 2.2.6(最新版)查到该文件的所有依赖动态链接库,发现缺少MSVCP100D.dll和MSVCR100D.dll,拷贝两个文件到系统文件夹即可正常运行。进一步研究,这两个文件名最后都带D,根据微软的命名规则,这两个文件都是Debug版本,不含在Visual C++的Redistribution安装文件中。于是调整编译选项,将“多线程调试DLL(/MDd)”改为“多线程DLL(/MD)”。此时,依赖动态连接库变为MSVCP100.dll和MSVCR100.dll,这两个文件包含在Visual C++的Redistribution安装文件中,或者自己独立打包这两个文件进行安装,软件能够正常运行。

  由于Win 10 64位的变化较大,很多组件和动态链接库不在包含系统中。因此一部分软件,尤其是一些较老的软件无法正常运行,导致一部分软件使用者对64位操作系统感到困扰,感到无所适从,但实际上通过一些工具和分析是可以解决大部分的,在此抛砖引玉,以供参考。

你可能感兴趣的:(软件在不同操作系统或者计算机不能正常运行问题解决)