当前位置:主页>销售管理软件> 列表

利用 Dll 返回接口,总出现一些让人难以理解的问题,相当 找设备维修管理软件

记账软件版1楼: 我想将 FastReport 封装在 Dll 中,
一方面方便使用,
另一方面也防止电脑出问题需要重装 Delphi 时的麻烦。

我是用一个类,并利用接口的形式做的(我平时就是这样用的,没有做成 Dll 的情况下)
因为 Dll 能返回接口,因此我想应该是很容易的。
但现在很容易出现关闭程序时“非法操作”(也就是内存错误了)。搞不定,相当生气!

大家帮我看看,访问这个
http://searoom.oicp.net/searoom/blog/blogview.asp?logID=7

2楼: 帮你看什么?上面这些汉字吗? 如设备维修管理软件

3楼: 等下我把程序放到网上
sorry

4楼: .................................

5楼: 用Bpl看看!

6楼: 下面是我的DLL中使用fastreport的例子的输出函数
procedure proc_CallForm(MainApp: TApplication; dataset: TCustomADODataSet; fliename: pchar); stdcall;
begin
DLLHandle := Application.Handle;
Application.Handle := MainApp.Handle;
if not assigned(Form2) then
begin
try
Form2 := TForm1.Create(Application);
//Form2.frDBDataSet1.Dataset:=dataset;顺便问一下,我本来想直接使用传递进来的数据集,可是预览报表的时候总是报错(undefined symbol""A""),但是明明数据集里有这个字段,最后我在DLL中放了个adodataset对传递进来的数据集进行Clone解决这个问题,但是请问DLL中的FR能不能直接使用调用窗体中的数据集,谢谢!
form2.ADODataSet1.Clone(dataset);
Form2.frReport1.Clear;
Form2.frReport1.LoadFromFile(fliename);
Form2.frReport1.ShowReport;
Form2.ShowModal;
finally
FreeAndNil(Form2);
end;
end;
Application.Handle := DLLHandle;
end;