function AddTest(i,j:integer):integer;stdcall;

解决方案 »

  1.   

    DIABL0(电脑破坏神),
    stdcall;是什么来的?可以这样直接写函数名调用的吗?不用引用什么的一下吗?
      

  2.   

    unit unit1
    interface
      function AddTest(i,j:integer):integer;stdcall; 
      ...
    implementation
      function AddTest;external 'Addit.dll' name 'AddText';
    end.然后引用这个单元就可以随意使用AddTest了!
      

  3.   

    type
      TAddTest = function(i,j:integer):Integer;procedure TMainForm.XXXXXX
    var
      AddTest: TAddTest;
      DllHandle: integer;
    begin
      DllHandle := LoadLibrary(Pchar('Addit.dll'));
      if DllHandle = 0 then
        raise Exception.Create('装入dll失败!')
      else begin
        AddTest := GetProcAddress(DllHandle, PChar('AddTest'));
        if @AddTest <> nil then
          ShowMessage(IntToStr(AddTest(1, 2)))
        else
          raise Exception.Create('获取函数失败!');
      end;
      FreeLibrary(DllHandle);
    edn;
      

  4.   

    你的Addit.dll中的函数必须是可以回调的和已经引出(export)的。如果用C/C++写的,必须用WINAPI修饰,如果是用Delphi写的,必须加上stdcall修饰及用
    exports声明是引出的。看看帮助。例:
    function AddTest(i,j:integer):integer;stdcall; exports
      AddTest;
    exports
      

  5.   

    可以做个接口单元
    然后在程序中uses这个接口单元来调用程序,delphi调用API就是用的这方法
    可看看delphi5.0开发指南上面说的很详细