DELPHI XE 10.2.3
Demo Virtual Serial Port Driver 9.0
The problem of creating serial ports in DELPHI XE 10.2.3
Demo Virtual Serial Port Driver 9.0
type
TCreatePair = Function (Port1, Port2 : PWideChar) : Boolean; stdcall;
TDeleteAll = Function : Boolean; stdcall;
Function CreatePairFn(PortName1, PortName2 : String) : Boolean;
Var Handle : THandle;
CreatePair : TCreatePair;
Begin
CreatePairFn := False;
Handle := LoadLibrary('c:\Program Files\Eltima Software\Virtual Serial Port Driver 9.0\VSPDCTL.DLL');
If (Handle = 0) Then Form1.Memo1.Lines.Add('no VSPDCTL.DLL ');
If (Handle <> 0) Then
Begin
Form1.Memo1.Lines.Add('yes VSPDCTL.DLL ');
@CreatePair:=GetProcAddress(Handle,'CreatePair');
if not (@CreatePair <> Nil) Then Form1.Memo1.Lines.Add('no CreatePair ');
if not (@CreatePair = nil) Then
// if Assigned(CreatePair) Then
Begin
CreatePairFn := CreatePair(PWideChar(PortName1), PWideChar(PortName2));
Form1.Memo1.Lines.Add('yes CreatePair ');
End;
FreeLibrary(Handle);
End;
End;
Function DeleteAllFn : Boolean;
Var Handle : THandle;
DeleteAll : TDeleteAll;
Begin
DeleteAllFn := False;
Handle := LoadLibrary('c:\Program Files\Eltima Software\Virtual Serial Port Driver 9.0\VSPDCTL.DLL');
If (Handle = 0) Then Form1.Memo1.Lines.Add('no VSPDCTL.DLL ');
If (Handle <> 0) Then
Begin
Form1.Memo1.Lines.Add('yes VSPDCTL.DLL ');
@DeleteAll:=GetProcAddress(Handle, 'DeleteAll');
if not (@DeleteAll <> Nil) Then Form1.Memo1.Lines.Add('no DeleteAll ');
If (@DeleteAll <> Nil) Then
Begin
DeleteAllFn := DeleteAll;
Form1.Memo1.Lines.Add('yes DeleteAll ');
End;
FreeLibrary(Handle);
End;
End;
1) function CreatePairFn('COM2','COM3') result False
Similar problem С++ and Delphi in function CreatePair parameters port name ('COM2','COM3')
2) In a programme Virtual Serial Port Driver 9.0 ports 'COM2','COM3' created
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSBC9\Ports\COM2COM3]
"StrictBaudrate"=dword:00000000
"Port1"="COM2"
"Port2"="COM3"
"UserSession"=""
"COM-Name-Arbiter1"=dword:00000001
"COM-Name-Arbiter2"=dword:00000001
3) function DeleteAllFn result True
function without parameters is executed positively