龙行天下 发表于 2014-7-17 11:32:44

VB调用Fortran的DLL后的路径设置问题

本帖最后由 龙行天下 于 2014-7-17 13:16 编辑

大侠,别走,请教个问题
情形1:相对位置
Module Module1
    Public Declare Auto Sub DLL_ROUT Lib "Fcall.dll" (ByVal DBL_IN() As Double, ByVal STR_IN As String, ByVal DBL_OUT() As Double)
End Module
如代码所示,我用相对位置,然后就会出错,提示无法加载DLL"Fcall.dll":找不到指定的模块。

情形2:绝对位置
Module Module1
    Public Declare Auto Sub DLL_ROUT Lib "C:\Users\Administrator\Desktop\M\Fcall.dll" (ByVal DBL_IN() As Double, ByVal STR_IN As String, ByVal DBL_OUT() As Double)
End Module
我把Fortran生成的dll放在自定义的文件夹内,然后公共声明用绝对路径,这样不会出错了。。

问题是:请问,如何设置,相对路径才不会出错。
先谢谢啦

楚香饭 发表于 2014-7-17 14:04:40

把 fcall.dll 放入与 exe 相同的文件夹既可。

龙行天下 发表于 2014-7-17 21:21:59

chuxf 发表于 2014-7-17 14:04
把 fcall.dll 放入与 exe 相同的文件夹既可。
你好,我从Intel visual fortran安装包里面找的例子,它不需要把人工移动dll,便可以自动移动dll到vb下面的bin文件夹。。麻烦你看一下,这个是怎么实现的

vvt 发表于 2014-7-17 21:38:54

设置工程的输出既可。

龙行天下 发表于 2014-7-18 09:17:00

我这么设置输出的,见图1.这样可以调试成功。
但是关于Fcall的所有调试文件也一股脑的全输出到bin文件下面了,见2.
而在Fcall项目下的Release不再生成dll等文件。见图3.(这一点完全可以理解)
————————————————————————————————————————
我昨天上传的那个压缩的example。我检查了它的输出设置,没发现做了什么特殊设置(依然是默认路径)。
但它可以完美的在Release里面正常生成关于Fcall.dll的各种各样,见图4.
同时仅仅把Fcall.dll自动放在bin下面,见图5.

vvt 发表于 2014-7-18 09:37:17

这是小问题,不必太纠结。

如图:

龙行天下 发表于 2014-7-18 10:36:04

vvt 发表于 2014-7-18 09:37
这是小问题,不必太纠结。

如图:

哦,原来是在这里实现的,这样的话在操作上,与改变输出路径,并无很大区别。
本以为有什么通用性的设置,可以一劳永逸,进行混编。。
谢谢大侠,算是完整的了解到这个过程的实现,也结束了一段纠结。。
页: [1]
查看完整版本: VB调用Fortran的DLL后的路径设置问题