我现在正在做医保的接口,其中有一个dll重的函数定义如下:
//功能:查询持卡患者的个人信息(不需要密码)
//出口参数:字符串,所指向的存储区必须大于 240 字节
//返回值:1:未找到该人员;3:IC卡不可用(挂失或损毁);4:客户端版本需要更新;5:本医院不是该人员的定点医院
PROXY_API f_comm_getpersoninfo_nopasswd(char* szOut);
我用delphi调用它,代码如下:
procedure TForm1.BitBtn1Click(Sender: TObject);
type
TIntFunc=function():string;stdcall;
var
Th:Thandle;
Tf:TIntFunc;
Tp:TFarProc;
begin
Th:=LoadLibrary('ProxyDll.dll'); {装载DLL}
if Th>0 then
try
Tp:=GetProcAddress(Th,PChar('f_comm_getpersoninfo_nopasswd');
if Tp<>nil then
begin
Tf:=TIntFunc(Tp);
Edit1.Text:=Tf(); {调用'f_comm_getpersoninfo_nopasswd函数}
end
else
ShowMessage('f_comm_getpersoninfo_nopasswd函数没有找到');
finally
FreeLibrary(Th); {释放DLL}
end
else
ShowMessage('ProxyDll.dll没有找到');
end;
可是老是在 Edit1.Text:=Tf(); {调用'f_comm_getpersoninfo_nopasswd函数} 处报错 读零地址。麻烦大家帮我看看,这段代码的错误到底出现在哪里。
//功能:查询持卡患者的个人信息(不需要密码)
//出口参数:字符串,所指向的存储区必须大于 240 字节
//返回值:1:未找到该人员;3:IC卡不可用(挂失或损毁);4:客户端版本需要更新;5:本医院不是该人员的定点医院
PROXY_API f_comm_getpersoninfo_nopasswd(char* szOut);
我用delphi调用它,代码如下:
procedure TForm1.BitBtn1Click(Sender: TObject);
type
TIntFunc=function():string;stdcall;
var
Th:Thandle;
Tf:TIntFunc;
Tp:TFarProc;
begin
Th:=LoadLibrary('ProxyDll.dll'); {装载DLL}
if Th>0 then
try
Tp:=GetProcAddress(Th,PChar('f_comm_getpersoninfo_nopasswd');
if Tp<>nil then
begin
Tf:=TIntFunc(Tp);
Edit1.Text:=Tf(); {调用'f_comm_getpersoninfo_nopasswd函数}
end
else
ShowMessage('f_comm_getpersoninfo_nopasswd函数没有找到');
finally
FreeLibrary(Th); {释放DLL}
end
else
ShowMessage('ProxyDll.dll没有找到');
end;
可是老是在 Edit1.Text:=Tf(); {调用'f_comm_getpersoninfo_nopasswd函数} 处报错 读零地址。麻烦大家帮我看看,这段代码的错误到底出现在哪里。
解决方案 »
- 如何使程序界面在简体系统和繁体系统都不乱码,从数据库中读出的数据也不乱码
- 如何用INI文件 快速保存控件的值和从INI中 读取值再赋给 控件?
- 介绍一些好的关于Windows shell和内核对象编程的书
- 我想改变1024*768的很清晰的jpg图形的尺寸,可是出来以后清晰度很差,不知道我的代码有什么问题,请帮看看,谢谢!
- 关于类型测试!100分!
- 怎样抓取当前鼠标形状:
- 向大家请教.谢谢了!
- 不是问题的问题,只是想用另外方法,请大家说说看!
- 如何检测程序是否存在内存泄露? 分数大大的!
- delphi 学长遗留程序有疑问 请大侠指点啊
- 在Win2K中,怎么样判断共享文夹里边的文件被哪些正被哪些用户在使用?
- System Volume Information里面的文件都是什么文件?
不用project->add to project, add也没用。