rt

解决方案 »

  1.   

    function Read(a: Integer; var b: Bype; c: PAnsiChar): LongInt;
      

  2.   

    错了,后面还要加上Stdcall才行
      

  3.   

    unsigned long 应为LongWord;function Read(a: Integer; var b: DWORD; c: PAnsiChar): LongWord; stdcall;
      

  4.   

    To fengyepiaoling (枫叶飘零):
        假设你使用了VC++产生的DLL文件,在将Read函数声明包含/引入至Delphi单元文件后,你需要按照一定的格式调用该函数。为了便于你更好的理解,我首先将此VC++的函数翻译成Delphi规则下的函数形式:
        function Read(a : Integer; b : PByte; c : PAnsiChar) : LongWord; stdcall;
        下面我们来模拟调用该函数:
        function Example : Boolean; //需要调用该VC++函数的一个范例函数
        var
          paramB : Byte;//保存函数的第二个参数
          paramValue : LongWord;//保存函数的返回值
        begin
          Result := False;
          paramB := 56; 
          ......//若干语句
          //下面调用VC++函数(当然已经经过Delphi的一层包裹)
          paramValue := Read(28, PByte(@paramB), PAnsiChar('Example'));
          if paramValue then
          begin
            ......//若干语句
          end;
          ......//若干语句
          Result := True;
        end;