动态库兼容问题---- 为什么 delphi 2006 调用低版(delphi 6.0)的DLL时,会出错!!(急!!给高分!!)

flyzerg 2006-04-11 03:59:10
delphi 6.0下的动态库为project2.dll 定义如下:
------------------------------
library Project2;
uses
sharemem,
SysUtils,
Classes,ADODB;

{$R *.res}
procedure exeselect(var adoquery1:tadoquery;constr,sqlstr:string;yn:boolean);stdcall;
begin
if constr<>'' then
adoquery1.ConnectionString :=constr;

adoquery1.Active :=false;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add(sqlstr);
if yn then
adoquery1.Active :=true
else
adoquery1.ExecSQL ;

end;

exports exeselect;

begin
end.
-------------------------------------
delphi 2006 调用时,申明为:
procedure exeselect(adoquery1:tadoquery;constr,sqlstr:string;yn:boolean);stdcall;external 'project2.dll';

--------------------------------------------------
当调用时就出现错误
值的一题的是,如果在delphi 2006环境下编写project2.dll 调用是就没有问题!!!为什么????
...全文
87 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
李_军 2006-04-12
  • 打赏
  • 举报
回复
参数类型,在两个版本中不一样,你要用标准的类型,string 改为PChar,adoquery的调用不要放在dll中

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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