2,498
社区成员
发帖
与我相关
我的任务
分享
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
function GetMedicine_New(Str_Date:string;var Str_Result: string): Integer;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
function GetMedicine(date,result:PChar):Integer;Stdcall;External 'NhHisImp.dll';
implementation
{$R *.dfm}
function TForm1.GetMedicine_New(Str_Date:string;var Str_Result: string):Integer;
var
P_Str_Date,P_Str_Result:PChar;
begin
GetMem(P_Str_Date,16);
GetMem(P_Str_Result,1048576);
try
ZeroMemory(P_Str_Date,StrLen(P_Str_Date));
ZeroMemory(P_Str_Result,StrLen(P_Str_Result));
StrPCopy(P_Str_Date,Str_Date);
StrPCopy(P_Str_Result,Str_Result);
Result:=GetMedicine(P_Str_Date,P_Str_Result);
Str_Result:=StrPas(P_Str_Result);
finally
FreeMem(P_Str_Date);
FreeMem(P_Str_Result);
end;
end;
procedure TForm1.btn1Click(Sender: TObject);
var
i_RtnCode:Integer;
Str_Date,Str_Result:string;
begin
Str_Date:='2010-01-01';
i_RtnCode:=GetMedicine_New(Str_Date,Str_Result);
if i_RtnCode<0 then
begin
ShowMessage('获取药品目录失败!');
Exit;
end;
ShowMessage('获取药品目录成功!'+#13#10+Str_Result);
end;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
function GetMedicine(Str_Date, Str_Result: string): Integer;overload;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
function GetMedicine(date,result:PChar):Integer;Stdcall;External 'NhHisImp.dll';overload;
implementation
{$R *.dfm}
function TForm1.GetMedicine(Str_Date,Str_Result:string):Integer;
var
P_Str_Date,P_Str_Result:PChar;
begin
GetMem(P_Str_Date,16);
GetMem(P_Str_Result,1024); //根据实际要求更改大小。
try
StrPCopy(P_Str_Date,Str_Date);
StrPCopy(P_Str_Result,Str_Result);
Result:=GetMedicine(P_Str_Date,P_Str_Result);
finally
FreeMem(P_Str_Date);
FreeMem(P_Str_Result);
end;
end;
procedure TForm1.btn1Click(Sender: TObject);
var
i_RtnCode:Integer;
Str_Date,Str_Result:string;
begin
Str_Date:='2010-01-01'; //使用这个日期你确定能获取到药品目录?
i_RtnCode:=GetMedicine(Str_Date,Str_Result);
if i_RtnCode<0 then
begin
ShowMessage('获取药品目录失败!');
Exit;
end;
ShowMessage('获取药品目录成功!'+#13#10+Str_Result);
end;
end.