请问?Delphi7开发动态连接库DLL是不是不能用ADO组件.

xxl8101 2003-08-29 08:44:26
为什么我一用ADO组件就报错!
...全文
105 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzbug 2003-09-16
  • 打赏
  • 举报
回复
支持!!!
zqc-tutorial 2003-09-02
  • 打赏
  • 举报
回复
同意 bcghb()
aiirii 2003-09-02
  • 打赏
  • 举报
回复
bcghb() 说得对, 因为 ado是一组ActiveX,在dll中调用时,必须先用 CoInitialize(nil);
初始化
lveight1 2003-09-02
  • 打赏
  • 举报
回复
帮你UP,我也在跟你问同一个问题。但是我的不能有窗体。
只能用声明,麻烦着啊!
ltmb118 2003-09-02
  • 打赏
  • 举报
回复
我能救你!!!


我是在DLL中放了个窗体,窗体中只要一放ADO数据控件。当另外一个程序来调用DLL中的

关键是:“另外一个程序” 必须 uses adodb,db 之类
ltmb118 2003-09-02
  • 打赏
  • 举报
回复

我能救你!!!


我是在DLL中放了个窗体,窗体中只要一放ADO数据控件。当另外一个程序来调用DLL中的

关键是:“另外一个程序” 必须 use adodb,cd
bcghb 2003-09-02
  • 打赏
  • 举报
回复
一定要
uses ActiveX
因为ADO控件属于ActiveX类

function FormCreate():PChar;stdcall;
begin
Result:='1';
try
CoInitialize(nil);
FormXYZ:=TFormXYZ.Create(nil);
except
Result:='0';
end;
end;

function FormFree():PChar;stdcall;
begin
Result:='1';
try
FormXYZ.Free;
CoUninitialize;
except
Result:='0';
end;
end;
我的例子,可以用的~!
xxl8101 2003-09-01
  • 打赏
  • 举报
回复
我的Email:xxl8101@sina.com
dsdc 2003-08-31
  • 打赏
  • 举报
回复
我是在dll源文件中引用了:
use comobj;
function ShowForms():boolean;stdcall
var
frmTest : TForm1;
begin
ComObj.CoInitializeEx(nil,0); //这里使用了其中的函数,但是具体的含义我不是特别清楚,印象中vc使用ole的时候也要用该函数进行初始化作业
frmTest := TForm1.Create(Application);
frmTest.ShowModal;
frmTest.Free;
end;
mysqlcom 2003-08-30
  • 打赏
  • 举报
回复
应当把ADOConection设置成多线程模式
statesman 2003-08-30
  • 打赏
  • 举报
回复
Study
xxl8101 2003-08-30
  • 打赏
  • 举报
回复
老兄:帮帮忙你是怎么实现的

我在DLL中放了个窗体(Form1),窗体中只放了个ADOConnection1控件。在DLL中我写了个函数如下:
procedure createform() ;
begin
Form1:=TForm1.Create(application);
end;

当另外一个程序来调用DLL中的函数createform来创建(Form1)这窗体是,就报"Exception EOleSysError in module Project1.dll at 0063515"的错误.
这是怎么回事.只要我把ADOConnection1控件删掉,就没事了.
liuhelin 2003-08-30
  • 打赏
  • 举报
回复
给个mail
楚人无衣 2003-08-29
  • 打赏
  • 举报
回复
可以吧,看看输出接口是不是正确
Zengqf_W 2003-08-29
  • 打赏
  • 举报
回复
可以啊,我不知道你是怎么用的
FrameSniper 2003-08-29
  • 打赏
  • 举报
回复
应该可以!
liuhelin 2003-08-29
  • 打赏
  • 举报
回复
非常肯定的告诉你可以用
我做了好几个了
你的program单元了是不是有ado啊
弄出去
xxl8101 2003-08-29
  • 打赏
  • 举报
回复
我是在DLL中放了个窗体,窗体中只要一放ADO数据控件。当另外一个程序来调用DLL中的函数来创建这窗体是,就报"Exception EOleSysError in module Project1.dll at 0063515"的错误.这是怎么回事.只要换成BDE数据控件就没事了.

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧