- Details
- Written by: Stanko Milosev
- Category: Lazarus
- Hits: 6064
This is one example of late binding using Lazarus, and example of disabling radio frequency DENSO BHT-200BW-CE devices, API manual you can download from here.
...
uses dynlibs;
...
procedure TForm1.Button4Click(Sender: TObject);
type
TBHT_RF_CloseEx = function(_opt:DWord): DWord; stdcall;
var
BHT_RF_CloseEx : TBHT_RF_CloseEx;
FDllHandle: TLibHandle;
intRes: DWord;
intError: Integer;
begin
FDllHandle := LoadLibrary('BHTLib.dll');
intError := GetLastError;
if FDLLHandle = NilHandle then begin
ShowMessage(SysErrorMessage(intError) + ' (Error ' + IntToStr(intError) + ')');
end else begin
BHT_RF_CloseEx := TBHT_RF_CloseEx(GetProcedureAddress(FDllHandle, 'BHT_RF_CloseEx'));
intError := GetLastError;
if BHT_RF_CloseEx = nil then begin
ShowMessage(SysErrorMessage(intError) + ' (Error ' + IntToStr(intError) + ')')
end else begin
intRes := BHT_RF_CloseEx(1);
end;
end;
end;
Another example is:
procedure TForm1.Button4Click(Sender: TObject);
type
TBHT_RF_CloseEx = function(_opt:DWord): DWord; stdcall;
var
BHT_RF_CloseEx : TBHT_RF_CloseEx;
p: pointer;
FDllHandle: TLibHandle;
intRes: DWord;
intError: Integer;
begin
FDllHandle := LoadLibrary('BHTLib.dll');
intError := GetLastError;
if FDLLHandle = NilHandle then begin
ShowMessage(SysErrorMessage(intError) + ' (Error ' + IntToStr(intError) + ')');
end else begin
p := GetProcAddress(VBHTLibHandle, 'BHT_RF_CloseEx');
if p <> nil then begin
Pointer(BHT_RF_CloseEx) := p;
end;
intError := GetLastError;
if BHT_RF_CloseEx = nil then begin
ShowMessage(SysErrorMessage(intError) + ' (Error ' + IntToStr(intError) + ')')
end else begin
intRes := BHT_RF_CloseEx();
end;
end;
end;
For opening and closing you can use:
BHT_RF_Open() (*1)
BHT_RF_Close() (*2)
BHT_RF_OpenEx(COMM_CONTINUOUS)
BHT_RF_CloseEx(COMM_CONTINUOUS)
(*1) Includes BHT_RF_OpenEx(COMM_NORMAL)
(*2) Includes BHT_RF_CloseEx(COMM_NORMAL)
Where COMM_CONTINUOUS is 1, and COMM_NORMAL is 0 (I hope)
- Details
- Written by: Stanko Milosev
- Category: Lazarus
- Hits: 6686
Code is taken from here, and translated to Lazarus.
Dialing:
uses ras
...
var
rasDialParam:RASDIALPARAMS;
pRasConn:HRASCONN;
dwResult: DWORD;
begin
pRasConn := null;
FillChar(rasDialParam, SizeOf(RASDIALPARAMS), 0);
rasDialParam.dwSize:=SizeOf(RASDIALPARAMS);
rasDialParam.szCallbackNumber[0]:=#0;
rasDialParam.szDomain[0]:=#0;
rasDialParam.szEntryName:='ConnName'; //important, name of the connection which I want to use
rasDialParam.szPassword:='pass'; //important, if pass or user is wrong, then I will receive error code 619
rasDialParam.szPhoneNumber[0]:=#0;
rasDialParam.szUserName:='user'; //important
dwResult := RasDial(nil, nil, @rasDialParam, null, nil, @pRasConn);
if dwResult = ERROR_SUCCESS then
ShowMesage('It is working')
else
ShowMesage('Error: ' + IntToStr(dwResult))
Get connection status:
...
var
dwResult: DWORD;
MyRasconnstatus: RASCONNSTATUS;
...
dwResult := RasGetConnectStatus(VRasConn, @MyRasconnstatus);
if dwResult = ERROR_SUCCESS then
begin
if MyRasconnstatus.rasconnstate = RASCS_Connected then
begin
ShowMessage('Connected')
end
else
begin
ShowMessage('Not connected')
end;
end;
Hang up:
RasHangUp(VRasConn)
- Details
- Written by: Stanko Milosev
- Category: Downloads
- Hits: 787
BatchExtractGpsCoordinates.exe folder:C:\ csvFile:test.csv jsonFile:test.json connectionString:"Server=myServer;Database=myDb;User Id=myUser;Password=myPass;TrustServerCertificate=True;" tableName:GpsInfo
- The parameters csvFile, jsonFile, and connectionString are optional, but at least one of them must be provided.
- If connectionString is set but tableName is not, the default table name GpsInfo will be used.
- A log file named BatchExtractGpsCoordinates.log will be automatically created in the same folder as BatchExtractGpsCoordinates.exe
Download the EXE in ZIP format from here; the source code can be found here.
- Details
- Written by: Stanko Milosev
- Category: Downloads
- Hits: 1648
java" -jar "\validator-1.5.0-distribution\validationtool-1.5.0-standalone.jar" -s "\validator-configuration-xrechnung_3.0.2_2024-06-20\scenarios.xml" -r "\validator-configuration-xrechnung_3.0.2_2024-06-20" "eInvoice.xml" -h -o \outputWithout TPL library download exe from here source code from here. If you need XML files good and wrong for tests, download from here. With TPL library download from here , source from here Source you can also find on GitHub