用Delphi调用Delphi编译的DLL!
调用没任何错误,就是退出时
报异常:
A call to an OS function failed。
请问高手们,这是怎么回事,我被折麽三天了。
调用没任何错误,就是退出时
报异常:
A call to an OS function failed。
请问高手们,这是怎么回事,我被折麽三天了。
解决方案 »
- 如何客户端动态控制服务端的DataSetProvider1.exported 为false或true?
- 急!求用API函数画斜线的代码!
- [散分]顺便promote一下自己的开源项目和blog
- 怎样只运行外部程序一次.
- 天大的美事------------100大方 送出,行动吧各位仁兄。
- 我的DELPHI5打开时只有*.dpr,其他的东西,比如菜单,控件都不见了,不知道如何把他恢复过来.
- 那有录音的控件录中文
- 高分寻求解决方案!!!!!
- 请教:DATASET.LOCATE(参数),它有三个参数,第三个参数是什么作用呢?
- 字符串自动换行函数,大家帮看一下是哪有问题,为什么总是乱码了??????????
- 一个添加数据出错的问题
- 保存时,提示“无法更新定位行。一些可能已在最后一次读取后已更改。”,求助!
调用部分(主要代码)
uses
sharemem //..procedure PrintPreviewBills(iPJDst,iPJDST1: TDataSet;iPMDat: string; iPrnCt: integer; iOthVs: TStringList; IsPrvw: boolean); stdcall;
external 'DEMODLL.dll' name 'PrintPreviewBills';implementation{$R *.dfm}procedure TForm1.BitBtn1Click(Sender: TObject);
begin
PrintPreviewBills(ADOQuery1,ADOQuery2,'D:\单据.dat',1,nil,True)
end;以上程序能正确调用DLL,但退出时会报A call to an OS function failed错误.(DLL接口部分主要代码,篇幅有限,类结构复杂,就不贴了)
library DEMODLLprocedure PrintPreviewBills(iPJDst, iPJDST1: TDataSet; iPMDat: string;
iPrnCt: integer; iOthVs: TStringList; IsPrvw: boolean); stdcall;
var
PJDYJKDX: TPJDYJK_Cls;
begin
if iPJDst=nil then
Exit;
if iPJDst.IsEmpty then
Exit;
if iPJDst.Eof then
Exit;
if not FileExists(iPMDat) then
Exit;
PJDYJKDX := TPJDYJK_Cls.Create;
try
with PJDYJKDX do
begin
FPJDst := iPJDst;
FPJDst1 := iPJDST1;
FPMDat := iPMDat;
FOthVs := iOthVs;
FPrnBCt := iPrnCt;
FBillDX.LoadPJXX_F(FPMDat);
FIsPrvw := IsPrvw;
//执行打印或预览
ExecPJDYPrnPrvw;
end;
finally
PJDYJKDX.Free;
end;
end;exports
PrintPreviewBills;
end.
end.
退出时也会报错
A call to an OS function failed。