|
These are the function declarations for Delphi:
Function CreatePair(Port1, Port2 : PChar) : Boolean; stdcall; external 'VSPDCTL.DLL';
Function DeletePair(Port : PChar) : Boolean; stdcall; external 'VSPDCTL.DLL';
Function DeleteAll : Boolean; stdcall; external 'VSPDCTL.DLL';
Function SetStrictBaudrateName(Port: PChar, StrictBaudrate: Boolean) : Boolean; stdcall; external 'VSPDCTL.DLL';
Function SetStrictBaudrateHandle(hPort: THandle, StrictBaudrate: Boolean) : Boolean; stdcall; external 'VSPDCTL.DLL';
Function CreatePair(Port1, Port2 : PChar) : Boolean; stdcall; external 'VSPDCTL.DLL';
Function DeletePair(Port : PChar) : Boolean; stdcall; external 'VSPDCTL.DLL';
Function DeleteAll : Boolean; stdcall; external 'VSPDCTL.DLL';
Function SetStrictBaudrate(Port: PChar, StrictBaudrate: Boolean) : Boolean; stdcall; external 'VSPDCTL.DLL';
Function SetBreak (Port: PChar, bBreak: Boolean) : Boolean; stdcall; external 'VSPDCTL.DLL';
Function QueryBus (InBuffer: Pointer, sizeInBuffer: Integer, OutBuffer: Pointer, sizeOutBuffer: Integer) : Boolean; stdcall; external 'VSPDCTL.DLL';
Function SetWiring (Port: PChar Buffer: Pointer, sizeBuffer: Integer) : Boolean; stdcall; external 'VSPDCTL.DLL';
Delphi can load ArmAccess either dynamically or statically. Here is a sample code for dynamic loading:
Function CreatePairFn(PortName1, PortName2 : String) : Boolean;
Type TCreatePair = function(Port1, Port2 : PChar) : Boolean; stdcall;
Var Handle : THandle;
CreatePair : TCreatePair;
Begin
CreatePairFn := False;
Handle := LoadLibrary('VSPDCTL.DLL');
If (Handle <> 0) Then
Begin
@CreatePair:=GetProcAddress(Handle, 'CreatePair');
If (CreatePair <> Nil) Then
CreatePairFn := CreatePair(PChar(PortName1), PChar(PortName2));
FreeLibrary(Handle);
End;
End; |
|