//login_u.pas for unit
unit login_u;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils,
//additional
LCLIntf, Dynlibs, Dialogs, Buttons;
type
//API Testing
ThreadAPITesting = class(TThread)
protected
procedure LoadingLib;
procedure Execute; override;
end;
procedure ShowApiTesting;
implementation
//uses
type
//API TESTING
//=========== API TESTING =============
TApiTesting = function (client_key, client_secret: string): string; cdecl; //API TESTING
procedure ThreadApiTesting.LoadingLib;
var
MyHandle: TLibHandle;
ApiTestingFunc: TApiTesting;
DataResult: string;
client_key, client_secret: string;
begin
MyHandle := LoadLibrary('libs/libdbq.so');
if MyHandle<>0 then
begin
ApiTestingFunc := TApiTesting(GetProcedureAddress(MyHandle,'ApiTesting'));
if Assigned(@ApiTestingFunc) then
begin
DataResult := ApiTestingFunc('what', 'ever');
end;
FreeLibrary(MyHandle);
end
else
begin
FreeLibrary(MyHandle);
ShowMessage('Library failed.');
end;
Exit;
end;
procedure ThreadApiTesting.Execute;
begin
if not Terminated then
begin
Synchronize(@LoadingLib);
Exit;
end;
end;
procedure ShowApiTesting;
var
ExecApiTesting: ThreadApiTesting;
begin
ExecApiTesting := ThreadApiTesting.Create(False);
ExecApiTesting.FreeOnTerminate := True;
Exit;
end;
end.