以前在DELPHI7中用过几次,现在改用DELPHI2006后,再照以前的写老是出错。
DLL文件中的代码如下:
Function SQLSel(ADOQuery:TADOQuery;SQLStr:string):integer;
begin
  with ADOQuery do
  begin
    close;
    SQL.Clear;
    SQL.Add(SQLStr);
    Open;
  end;
  result:=0;
end;我在项目中调用dll文件的方法如下:
Function SQLSel(ADOQuery:TADOQuery;SQLStr:string):integer;External'sqldll.dll';SQLSel(adoquery1,'select * from abc');结果无法编译执行,各位如果用过DELPHI2006,帮忙看看哪出错了,先谢谢了。

解决方案 »

  1.   

    编译可以通过,但执行EXE文件的时候会弹出对话框“应用程序初始化(0xc000007b)失败。请单击“确定”,终止应用程序。”
    如果从DELPHI2006里面直接执行,则提示:Module Load: UNKNOWN_MODULE_7. No Debug Info. Base Address: $00370000. Process Project2.exe (2924)
      

  2.   

    Function SQLSel(ADOQuery:TADOQuery;SQLStr:string):integer;STDCALL;//压栈方式不可少啊
    begin
      with ADOQuery do
      begin
        close;
        SQL.Clear;
        SQL.Add(SQLStr);
        Open;
      end;
      result:=0;
    end;不知道你的DLL内部有没有加入压栈调用规则?如果没有,会报错的。