我要用一个vc写的通讯组建的动态链接库文件,组建导进来后不知道怎么获取接收到的串口数据,附上导入的动态库文件
                                         // *********************************************************************//  _ICommandWraperEvents = dispinterface
    ['{29EC56E5-9CDE-47B4-8E50-70E7C65AB631}']
    procedure OnCommand(nPort: Integer; cmdIndex: Integer; fromAddr: Integer; toAddr: Integer; 
                        data: OleVariant); dispid 1;
    procedure OnMessage(nPort: Integer; nType: Integer; param: Integer; const msg: WideString); dispid 2;
    procedure OnError(nPort: Integer; errNum: Integer; param: Integer; const Description: WideString); dispid 3;
  end;// *********************************************************************//
  CoCommandWraper = class
    class function Create: ICommandWraper;
    class function CreateRemote(const MachineName: string): ICommandWraper;
  end;  TCommandWraperOnCommand = procedure(ASender: TObject; nPort: Integer; cmdIndex: Integer; 
                                                        fromAddr: Integer; toAddr: Integer; 
                                                        data: OleVariant) of object;
  TCommandWraperOnMessage = procedure(ASender: TObject; nPort: Integer; nType: Integer; 
                                                        param: Integer; const msg: WideString) of object;
  TCommandWraperOnError = procedure(ASender: TObject; nPort: Integer; errNum: Integer; 
                                                      param: Integer; const Description: WideString) of object;
、、、、、、、、、、、、、、、、、、、、、、、、、
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  TCommandWraperProperties= class;
{$ENDIF}
  TCommandWraper = class(TOleServer)
  private
    FOnCommand: TCommandWraperOnCommand;   {定义一个指向事件处理器的指针FOnCommand}
    FOnMessage: TCommandWraperOnMessage;
    FOnError: TCommandWraperOnError;
    FIntf:        ICommandWraper;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
    FProps:       TCommandWraperProperties;
    function      GetServerProperties: TCommandWraperProperties;
{$ENDIF}
    function      GetDefaultInterface: ICommandWraper;
  protected
    procedure InitServerData; override;
    procedure InvokeEvent(DispID: TDispID; var Params: TVariantArray); override;
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
    procedure Connect; override;
    procedure ConnectTo(svrIntf: ICommandWraper);
    procedure Disconnect; override;
    procedure cmdRemainSum(port: Integer; backParam: Integer; nType: Integer; sumOrDays: Single; 
                           validityDate: TDateTime);
    procedure cmdChargeSum(port: Integer; backParam: Integer; sum: Single; dayCount: Integer;
                           hourCount: Integer; minute: Integer);
    procedure cmdLackSum(port: Integer; backParam: Integer);
    procedure cmdOutOfDate(port: Integer; backParam: Integer);
    procedure cmdEnterOK(port: Integer; backParam: Integer);
    procedure cmdNoCard(port: Integer; backParam: Integer);
    procedure cmdOutOK(port: Integer; backParam: Integer);
    procedure cmdAlreadyEnter(port: Integer; backParam: Integer);
    procedure cmdAlreadyOut(port: Integer; backParam: Integer);
    procedure cmdPlaySound(port: Integer; backParam: Integer; volume: Integer; 
                           const strText: WideString);
    procedure cmdShowText(port: Integer; backParam: Integer; const strText: WideString);
    procedure cmdRemainPosition(port: Integer; backParam: Integer; nCount: Integer);
    procedure cmdLightControl(port: Integer; backParam: Integer; nType: Integer);
    procedure cmdDoorControl(port: Integer; backParam: Integer; nFlag: Integer);
    procedure cmdFanControl(port: Integer; backParam: Integer; nFlag: Integer);
    procedure cmdSetDate(port: Integer; backParam: Integer; datetime: TDateTime);
    procedure cmdSetAdText(port: Integer; backParam: Integer; const strText: WideString);
    procedure cmdSetOutText(port: Integer; backParam: Integer; const strText: WideString);
    procedure cmdSetEnterText(port: Integer; backParam: Integer; const strText: WideString);
    procedure cmdGetCopyrightInfo(port: Integer; backParam: Integer; out Addr: Integer; 
                                  out HardwareVer: Single; out SoftwareVer: Single; 
                                  out ClientCode: Integer; out date: TDateTime);
    procedure cmdVerifyCopyrightInfo(port: Integer; backParam: Integer; Addr: Integer; 
                                     HardwareVer: Single; SoftwareVer: Single; ClientCode: Integer; 
                                     date: TDateTime);
    procedure cmdBeat(port: Integer; backParam: Integer);
    procedure cmdAssitDebug(port: Integer; backParam: Integer; param: Integer);
    property DefaultInterface: ICommandWraper read GetDefaultInterface;
  published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
    property Server: TCommandWraperProperties read GetServerProperties; {定义事件}
{$ENDIF}
    property OnCommand: TCommandWraperOnCommand read FOnCommand write FOnCommand; {定义事件}
    property OnMessage: TCommandWraperOnMessage read FOnMessage write FOnMessage;  {定义事件}
    property OnError: TCommandWraperOnError read FOnError write FOnError;          {定义事件}
  end;{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object    : TCommandWraper
// (This object is used by the IDE's Property Inspector to allow editing
//  of the properties of this server)
// *********************************************************************//
 TCommandWraperProperties = class(TPersistent)
  private
    FServer:    TCommandWraper;
    function    GetDefaultInterface: ICommandWraper;
    constructor Create(AServer: TCommandWraper);
  protected
  public
    property DefaultInterface: ICommandWraper read GetDefaultInterface;
  published
  end;
{$ENDIF}

解决方案 »

  1.   

    找对应的说明文档,如果没有还不如用spcomm
      

  2.   

    个人猜测:
    1、OnCommand:是发送指令的事件,参数分别是:端口、指令顺序号、来源地址、目标地址、和数据;
    2、OnMessage:发送消息的事件,参数分别是:端口、类型、消息参数、消息描述;
    3、OnError:出错事件,参数是:端口、错误号、参数、描述;  由此可见,1、是发送指令并接收数据的事件,如果你可以和硬件连接调试就更好了,很快就可以知道结果。祝你顺利调试通过;如果有问题可以继续发帖。