用VC写的DLL中含有以下代码int WINAPI OpenComport(S_COM_SETTING* setting);
e.g. :
S_COM_SETTING setting; //parameters by ComPort
setting.port = 1; //COM 1
setting.baud = 57600;
return _OpenComport(&setting);怎么在delphi中调用啊!!!!

解决方案 »

  1.   


    type
      TComSetting=record
        port: smallint;//该参数需要参考C++的函数原型,字节长度需要一致,假定2字节smallint
        baud: longint; //同上,假定是4字节longint
      end;
      PComSetting=^TComSetting;
        
    function OpenComport(lpComSetting: PComSetting): longint; stdcall; external 'xxx.dll';调用var
      ret: longint;
      comSetting: TComSetting;
    begin
      comSetting.port := 1;
      comSetting.band := 57600;
      ret := OpenComport(@comSetting);
    end;
    或者
    var
      ret: longint;
      lpComSetting: PComSetting;
    begin
      new(lpComSetting);
      lpComSetting^.port := 1;
      lpComSetting^.band := 57600;
      ret := OpenComport(lpComSetting);
      dispose(lpComSetting);
    end;