我有的Dll文件,其附带的说明中有VB的声明如下:
  Declare Function W_711B_AD_Aquire Lib "711B.dll" (ad_data As Long) As Long
   我用Delphi写时应如何声明,调用呢?
   我也试过用指针传递但不成功,希望能给出源码,谢谢!
   

解决方案 »

  1.   

    function W_711B_AD_Aquire(ad_data:LongInt):LongInt;external '711B.dll'
    或者
    function W_711B_AD_Aquire(var ad_data:LongInt):LongInt;external '711B.dll'呵呵,对VB的API调用有点不大熟
      

  2.   

    你也太简单了吧, var --  有Delphi 内部可正常使用但对于DLL和与其它程序通讯就不行了...
      

  3.   

    不对,var 只不过告诉编译器,我这个参数传递的是参数的指针,怎么会在DLL和其他程序通讯时用不起呢?
      

  4.   

    可能是调用惯例的问题吧;试试stdcall
      

  5.   

    TDllInterface = procedure (hOwner: hInst);stdcall;procedure ExecuteDll(DllPath:string);
    var
        hInst:THandle;
        DllInterface:TDllInterface;
    begin
     hInst:=LoadLibrary(PChar(DllPath));
     try
      @DllInterface:=GetProcAddress(HInst,'输出函数名称');
      DllInterface(Form_Main.Handle);
     finally
      FreeLibrary(HInst);
     end;
    end;这个是我写的一个DLL调用的函数,你自己看看改一下应该没问题了
      

  6.   

    重要的是 ad_data As Long 這個long類型的是一個什麼含義 比如只是代表一個long型的 還是代表的是一個地址。。不然 就算你參數傳遞沒問題 可繼續執行dll代碼 就會出問題。
      

  7.   

    应该是个long类型,我用VB调用时能正常工作...用Delphi调用时,结果不正确,同时程序结束时发生错误.....