unit Bpaas_api;
interface
uses
Windows, SysUtils, Messages, Forms;
function InitBpaas_api(): Boolean;
type
FOnInitProcess = procedure(p_arg: PChar; code: Integer; sub_code: PChar; sub_msg: PChar; result: PChar); cdecl;
FOnInitFinish = procedure(p_arg: PChar; code: Integer; sub_code: PChar; sub_msg: PChar; result: PChar); cdecl;
var
abcp_init: procedure(p_arg: PChar; app_id: PChar; app_version: PChar; json_param: PChar; OnInitProcess: FOnInitProcess; OnInitFinish: FOnInitFinish);cdecl; //初始化
abcp_start_service: procedure(p_arg: PChar; app_id: PChar; service_oce: PChar; json_param: PChar; OnStartProcess: FOnInitProcess; OnStartFinish: FOnInitFinish);cdecl; //服务启用
abcp_stop_service: procedure(p_arg: PChar; app_id: PChar; service_oce: PChar; json_param: PChar; OnStopProcess: FOnInitProcess; OnStopFinish: FOnInitFinish);cdecl; //服务关闭
abcp_get_meta_info: procedure(p_arg: PChar; app_id: PChar; json_param: PChar; OnMetaProcess: FOnInitProcess; OnMetaFinish: FOnInitFinish);cdecl; //获取当前设备的基础信息,一般用于刷脸前请求刷脸标识数据环节。
implementation
function InitBpaas_api(): Boolean;
var
AclasDLLMoudle: THandle;
on_process:FOnInitProcess;
on_finish :FOnInitFinish;
var Res1, Res3, Res4, Res5:array[0..1024] of Char;
Res2:Integer;
answer_f:String;
begin
Result := False;
if not FileExists(ExtractFileDir(Application.ExeName) + '\bpaas_api.dll') then
begin
Application.MessageBox(PChar(Format('bpaas_api.dll不存在 : [%s]', [ExtractFileDir(Application.ExeName)])), '提示', MB_OK +
MB_ICONWARNING + MB_TOPMOST);
Result := False;
Exit;
end;
try
AclasDLLMoudle := Loadlibrary(PChar(ExtractFileDir(Application.ExeName) + '\bpaas_api.dll'));
except
On E: Exception do
begin
Application.MessageBox(PChar(Format('bpaas_api.dll加载失败[%s]', [E.Message])), '提示',
MB_OK + MB_ICONSTOP + MB_TOPMOST);
Exit;
end;
end;
if AclasDLLMoudle > 32 then
begin
Try
@abcp_init:=GetProcAddress(AclasDLLMoudle,'abcp_init');
if Assigned(@abcp_init) then
begin
abcp_init('XXXX', 'XXXX', '2.12.100.31', '{}', on_process, on_finish);
//大佬我现在想知道如何获取【on_finish】中的 参数 ,并打印出来,谢谢
on_finish(PChar(@Res1),Res2,PChar(@Res3),PChar(@Res4),PChar(@Res5));
ShowMessage(Res1);
end
else
begin
MyMessageOk('abcp_init初始化错误!');
FreeLibrary(AclasDLLMoudle);
Exit;
end;
Except
On E: Exception do
begin
Application.MessageBox(PChar(Format('初始化bpaas_api接口失败[%s]', [E.Message])), '提示',
MB_OK + MB_ICONSTOP + MB_TOPMOST);
Exit;
end;
End
end;
end;
end.
interface
uses
Windows, SysUtils, Messages, Forms;
function InitBpaas_api(): Boolean;
type
FOnInitProcess = procedure(p_arg: PChar; code: Integer; sub_code: PChar; sub_msg: PChar; result: PChar); cdecl;
FOnInitFinish = procedure(p_arg: PChar; code: Integer; sub_code: PChar; sub_msg: PChar; result: PChar); cdecl;
var
abcp_init: procedure(p_arg: PChar; app_id: PChar; app_version: PChar; json_param: PChar; OnInitProcess: FOnInitProcess; OnInitFinish: FOnInitFinish);cdecl; //初始化
abcp_start_service: procedure(p_arg: PChar; app_id: PChar; service_oce: PChar; json_param: PChar; OnStartProcess: FOnInitProcess; OnStartFinish: FOnInitFinish);cdecl; //服务启用
abcp_stop_service: procedure(p_arg: PChar; app_id: PChar; service_oce: PChar; json_param: PChar; OnStopProcess: FOnInitProcess; OnStopFinish: FOnInitFinish);cdecl; //服务关闭
abcp_get_meta_info: procedure(p_arg: PChar; app_id: PChar; json_param: PChar; OnMetaProcess: FOnInitProcess; OnMetaFinish: FOnInitFinish);cdecl; //获取当前设备的基础信息,一般用于刷脸前请求刷脸标识数据环节。
implementation
function InitBpaas_api(): Boolean;
var
AclasDLLMoudle: THandle;
on_process:FOnInitProcess;
on_finish :FOnInitFinish;
var Res1, Res3, Res4, Res5:array[0..1024] of Char;
Res2:Integer;
answer_f:String;
begin
Result := False;
if not FileExists(ExtractFileDir(Application.ExeName) + '\bpaas_api.dll') then
begin
Application.MessageBox(PChar(Format('bpaas_api.dll不存在 : [%s]', [ExtractFileDir(Application.ExeName)])), '提示', MB_OK +
MB_ICONWARNING + MB_TOPMOST);
Result := False;
Exit;
end;
try
AclasDLLMoudle := Loadlibrary(PChar(ExtractFileDir(Application.ExeName) + '\bpaas_api.dll'));
except
On E: Exception do
begin
Application.MessageBox(PChar(Format('bpaas_api.dll加载失败[%s]', [E.Message])), '提示',
MB_OK + MB_ICONSTOP + MB_TOPMOST);
Exit;
end;
end;
if AclasDLLMoudle > 32 then
begin
Try
@abcp_init:=GetProcAddress(AclasDLLMoudle,'abcp_init');
if Assigned(@abcp_init) then
begin
abcp_init('XXXX', 'XXXX', '2.12.100.31', '{}', on_process, on_finish);
//大佬我现在想知道如何获取【on_finish】中的 参数 ,并打印出来,谢谢
on_finish(PChar(@Res1),Res2,PChar(@Res3),PChar(@Res4),PChar(@Res5));
ShowMessage(Res1);
end
else
begin
MyMessageOk('abcp_init初始化错误!');
FreeLibrary(AclasDLLMoudle);
Exit;
end;
Except
On E: Exception do
begin
Application.MessageBox(PChar(Format('初始化bpaas_api接口失败[%s]', [E.Message])), '提示',
MB_OK + MB_ICONSTOP + MB_TOPMOST);
Exit;
end;
End
end;
end;
end.