我自己编写了一个dll文件,调用时需传递一个TStoredProc类型的参数,但是当被
传递的StoredProc打开时,调用时就会出现写地址错误,而被调用的StoredProc关闭的时候,不会出错,这是什么原因?
以下是源代码
procedure spShowForm(AHandle:THandle;strModule:string;strRegCode:string;spParam:TStoredProc);safecall;
var
i:integer;
begin
//sp,Module,RegCode,ArrayLen是全局变量
Application.Handle:=AHandle;
Module:=strModule;
RegCode:=strRegCode;
ArrayLen:=spParam.Fields.Count;
sp:=spParam;
frmReportPreview:=TfrmReportPreview.Create(Application);
frmReportPreview.ds.DataSet:=sp;//sp和一个数据源相连
frmReportPreview.ShowModal;
end;
传递的StoredProc打开时,调用时就会出现写地址错误,而被调用的StoredProc关闭的时候,不会出错,这是什么原因?
以下是源代码
procedure spShowForm(AHandle:THandle;strModule:string;strRegCode:string;spParam:TStoredProc);safecall;
var
i:integer;
begin
//sp,Module,RegCode,ArrayLen是全局变量
Application.Handle:=AHandle;
Module:=strModule;
RegCode:=strRegCode;
ArrayLen:=spParam.Fields.Count;
sp:=spParam;
frmReportPreview:=TfrmReportPreview.Create(Application);
frmReportPreview.ds.DataSet:=sp;//sp和一个数据源相连
frmReportPreview.ShowModal;
end;
解决方案 »
- 简单问题,d6有问题d7没问题,奇怪!!!
- 各位前辈,随着技术的发展,delphi会长久茁壮的发展下去吗,至少在未来5-10年内,入内探讨谢了先
- 【建议贴】所谓的对csdn的“建议贴”的发贴地点
- 很烦啊,想找人说个话,坐了一天,血都不流动了
- 问一个问题
- 急寻好用的扫描控件!
- delphi+Sql server 2005 Adoquery临时模式编辑的问题
- 回答作者有分拿
- 我想把一个image中的picture存放在SQL Server的image字段中,用ADOQuery实现,SQL该怎么写呢?
- treeview在公司管理层次结构上的实现!赠送原代码!
- 高分求算法
- 如何在dbgrid中得到现在指针所指的那一行是第几行呀。即时给分!
传地址看看,就是定义为:
procedure spShowForm(AHandle:THandle;strModule:string;strRegCode:string;spParamAddr: Integer);safecall;调用的时候给spParamAddr传入Integer(StoredProc1)在dll中再强制转化TStoredProc(spParamAddr)————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————