VB生成exe后在其他电脑上运行提示找不到所调用的那个DLL文件

您好,我看到您回答了一个VB调用Fortran编译的DLL文件后,生成exe文件在其他电脑上无法运行的问题,我也遇到了相同的问题,错误提示找不到所调用的那个DLL文件。请问是缺少了什么的原因?我用depends查询了该DLL所依赖的其他DLL复制在同一目录下后,仍然提示找不到DLL文件。

求帮忙!

并不是说把DLL复制到程序文件夹就行的。DLL是函数库文件,其中包含的函数理论上是可以供其他任何软件调用的,而不是专供某个软件使用的(当然如果不公开其调用方法,它就自然变成某个软件专用的库函数了)。因此,一般情况下是把DLL文件放到一个公共文件夹中的(比如Windows的System32文件夹),其次,需要注册才行,实际上就是把库函数的入口存放到系统注册表中,这样其他软件才能找到函数入口并进行调用。注册方法是用regsvr32.exe,比如在开始菜单的运行中输入:

regsvr32 c:\windows\system32\xxxx.dll追问

(1)我需要调用的那个dll文件用depends查询后发现它仍然调用或依赖了其他的dll,由于我的dll是通过Fortran编译生成的,它依赖于几个fortran文件夹中的dll文件,那么我是把这些dll全部打包过来,放在其他电脑的system32文件夹下吗?

(2)这些所有的dll都要注册吗?还是只有我编译生成的那个dll需要注册呢?
(3)将我编译的dll放在了system32,但是注册时失败了

追答

注册失败时提示什么信息?

追问

追答

1、确保文件确实存在
2、把相关的DLL全部复制到system32中
3、用 regsvr32 vsie_vb.dll 试试

追问

修改后,再次注册提示这个,求问。。。

这个dll是用fortran编译生成的32位dll,我机器是64位的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-29
需要打成安装包在运行的其它机子中安装注册追问

感谢回答!~
我打成了安装包,而且把该DLL和其他的几个DLL加到了包里面。安装后运行提示找不到DLL文件。 两个问题(1)打安装包一定要在我自己的那台可以运行的电脑上打包吗?我是把那个DLL和VB的工程复制出来在其他的电脑(安装了VB)上打包的,这样会不会有问题?(2)安装包做好了之后在其他的电脑上安装后还需要注册吗?如果需要改怎么注册呢?

万分感谢你的回答!

追答

要在你通过编译的机子上打包

追问

试过了,仍然不行。不知道问题在哪里

相似回答