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