这段dll动态生成adoquery的代码问题在哪里?(50分)

  • 主题发起人 主题发起人 eorchid
  • 开始时间 开始时间
E

eorchid

Unregistered / Unconfirmed
GUEST, unregistred user!
library moduleab;

uses
SysUtils,dialogs,adodb,
Classes;

procedure mainfunc(cnstring:string);stdcall;
var myado:tadoquery;
s:string;
i:integer;
begin
myado:=tadoquery.Create(nil);
myado.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:/myaccess/myaccess.mdb;Persist Security Info=False';
with myado do
begin
close;
sql.Clear;
sql.Add('select * from order_info');
open;
first;
while not eof do
begin
for i:=0 to fieldcount-1 do
s:=s+Fields.AsString;
next;
end;
end;
showmessage(s);
end;

exports
mainfunc;

{$R *.res}

begin
end.
 
cnstring:string改成pchar
用string问题多多
 
用string传递,ShareMem必须有且在uses的最前
Important note about DLL memory management: ShareMem must be the
first unit in your library's USES clause AND your project's
 
还是不行,我都没有用那个参数
 
是什么问题?是程序不通呢?还是
showmessage(s);没内容?

 
"我都没有用那个参数"
你怎么调用dll
 
张剑波:我把参数改为pchar,然后随便赋一个
错误依旧,执行 myado:=tadoquery.Create(nil);的时候就过不去,报错eolesyserror
 
你uses activex;
在dll的初始化代码中执行 CoInitialize(nil);
 
接受答案了.
 
后退
顶部