请教怎么向DLL中传递TDataModule
请问如何向DLL中传递TDataModule
有一个exe,包含一个TDataModule,TDataModule中包含数个DataSet,定义了一个TDataModule变量.
有一个dll,引用了这个DataModule的单元,并定义了一个TDataModule变量.输出了一个方法.
如下:
之后在exe中动态调用这个DLL,并执行SetDBMain这个方法,参数为Exe中已经实例化的DataModule变量.
问题是:
当我在DLL中使用这个DataModule中的DataSet时,有时正确,有时会提示内存溢出的错误,有时连提示都没有,直接退出程序.
我想知道为什么会出现这样的问题,为什么是好是坏,我应该怎么做才是正确的?
------解决方案--------------------
procedure SetDBMain(AForm1: TForm1; ADBMain: TDBMain); stdcall;
begin
AForm1.DBMain := ADBMain;
end;
------解决方案--------------------
你的dll不可能被其他语言程序所调用,所以用bpl包代替dll。
有一个exe,包含一个TDataModule,TDataModule中包含数个DataSet,定义了一个TDataModule变量.
有一个dll,引用了这个DataModule的单元,并定义了一个TDataModule变量.输出了一个方法.
如下:
library DDPH;
uses
SysUtils,
Windows,
Form1 in 'Form1.pas' {Form1},
DBMain in '..\DBMain.pas' {DataMain: TDataModule};
procedure SetDBMain(ADBMain: TDBMain); stdcall;
begin
Form1.DBMain := ADBMain;
end;
exports
SetDBMain;
begin
end;
之后在exe中动态调用这个DLL,并执行SetDBMain这个方法,参数为Exe中已经实例化的DataModule变量.
问题是:
当我在DLL中使用这个DataModule中的DataSet时,有时正确,有时会提示内存溢出的错误,有时连提示都没有,直接退出程序.
我想知道为什么会出现这样的问题,为什么是好是坏,我应该怎么做才是正确的?
delphi
内存溢出
dataset
实例
DataModule
------解决方案--------------------
procedure SetDBMain(AForm1: TForm1; ADBMain: TDBMain); stdcall;
begin
AForm1.DBMain := ADBMain;
end;
------解决方案--------------------
你的dll不可能被其他语言程序所调用,所以用bpl包代替dll。