VB调用DLL嵌套问题?

我用VB编写了一个程序A,在程序A中需要调用一个用C++编写的名为B的 DLL,在B中又调用了一个别人编写的名为C的DLL,最后A调用时,应该怎样调用B和C呢?

C++编写的不是ACTIVEX DLL,需要跟API那样声明追问

声明B还是C呢?

追答

B

追问

那C不用管吗?不管C,B又怎么调用C呢?

追答

C不用管,B怎么调用C不是用C++编写么?你自己试试不就知道了?

追问

我之前就是把B放在A的目录下,但好像没调用B,也不知怎么回事。
我编写B的时候,C是放在B的目录下,那现在A调用B,不用管C放到哪儿吗?

追答

C放到哪儿在B里面管,你只管B

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-31
在A中需要在“工程”-“引用”中添加对B的引用,然后可以定义b的对象,调用b的函数;如果引用b失败,对b里的每个函数,在a中需要这么写(参数及类型根据实际情况填写):
Declare Function func1 Lib "b.dll" (ByVal icdev As Long, ByVal offset As Integer, ByVal le As Integer, ByVal data_buffer$) As Integer
a无需调用c,调用b的时候,b会自动调用c
把b和c放到同一个目录下(系统目录或a的根目录下)即可。追问

怎样添加引用和定义为B的对象呢?是不是点Browse...,找到B,最后点确认啊,但点确认时出现问题,请看下面的截图。

追答

需要在a中声明b的函数,像下面这样:
Declare Function func1 Lib "b.dll" (参数1, 参数2, 参数3...) As Integer
当然,你必须对知道b中函数的各个参数及其类型

追问

单个的DLL我知道怎样用VB调用,但我这个B.DLL里还嵌套了C.DLL,我就是不知道该对C.DLL怎样处理了。

追答

调用c是,b的事情,a只管调用b就可以了
一般把b和c都放到system32目录下(xp,其它系统放到相应系统目录下)