紧急求救,在线等待!如何通过DLL访问COM+对象的一个与ADO相关的接口 (200+100分) (200分)

  • 主题发起人 主题发起人 soyii
  • 开始时间 开始时间
S

soyii

Unregistered / Unconfirmed
GUEST, unregistred user!
求救!!
我有三个文件:客户端EXE、客户端DLL、中间层DLL
其中,中间层DLL包含了一COM+对象,提供了几个直接访问数据库的接口,都以ADO连接
要求:客户端EXE要执行一个过程A,过程A必须要调用客户端DLL的函数B,函数B又调用中间层DLL的接口C(C仅仅检索一个表)
问题:为什么A调用B总是失败的
注意:EXE直接调用中间层的接口C,语法、逻辑都没有错误
愿意200分相送,急盼高手指点!
 
有错误信息提示吗?客户端DLL中输出一个普通的函数给A调用可以吗
 
没有错误提示,单独调用DLL都没问题
C接口只是单纯的加减乘除也没问题,但C接口要调用ADO就出现问题了
 
请问哪位写过DLL A调用DLL B里的一个引用ADO的接口呢?
 
是不是com libary没有初始化啊,我在dll里用ado没问题啊。你试试dll中加上这个管用吗?
initialization
activex.CoInitialize(nil);
finalization
activex.CoUninitialize;
 
问题是,我在DLL里调用另外一个DLL的接口C,而C引用了ADO
多了一个DLL,问题就来了
 
你把COM包含ADO结口的部分贴上来看看
 
我的外层DLL在调用里层DLL是不是也要加上下面的代码
initialization
CoInitialize(nil);
finalization
CoUninitialize;
 
要,CoInitialize 是系统 API,由于 ADO 是使用了 COM,而使用 COM 前必须先初试化
COM 库,就是用这个函数了。在创建 ADO 对象之前调用就可以了,最好是在单元或
主窗口的初试化部分调用它。结束后记得调用 CoUninitialize。
 
不要意思,公司管的紧,代码不让外传
请问APP2001,你用过DLL调用一个引用ADO的DLL接口吗?
 
没有,我只用EXE调用过
 
可能和EXE里调用有区别
 
哦,你是用一个动态库去调用另一个动态库吗??
 
是啊,一个调用另一个,被调用的接口用到了ADO
 
哦,那我试一下看看,你的A调用B要返回一个什么内容呢??
 
你可以任意调用,但C接口一定要和ADO挂钩
 
怎么样啊,APP2001
 
我的QQ:110435164,欢迎大家加我
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部