我的dll文件是这样处理的:
在dll工程里:
library dllname;
uses
ShareMem,
SysUtils,
Classes,
windows,
forms,
ADODB,
// basequery in 'basequery.pas' {waterquery},
BaseFm1U in 'BaseFm1U.pas' {BaseFM1};procedure wshowform(AHandle: THandle; Reserve: String; connect:TADOConnection);StdCall;
var
dllform: Twaterquery;
apphand: THandle;
begin
apphand:=Application.Handle;
Application.Handle := AHandle;
try
dllform:= Twaterquery.Create(Application);
dllform.connected:=@connect;
dllform.ShowModal;
Application.Handle := apphand;
finally
dllform.Free;
end;
end;exports
wshowform;
begin
end.
我的主工程是这样处理的:
procedure process(dllname: string);
var
LibHandle: THandle;
showform: Twshowform;
begin
LibHandle := 0;
try
LibHandle := LoadLibrary(LPCTSTR(dllname));
if LibHandle = 0 then
begin
raise EDLLLoadError.Create('此动态链接库不能加载');
exit;
end ;
@showform := GetProcAddress(LibHandle,'wshowform');
if not (@showform = nil) then
showform(Application.Handle,'',MainForm.ADOConnection1)
else
RaiseLastWin32Error;
finally
FreeLibrary(LibHandle); // Unload the DLL.
end;
end;当释放dll文件时
FreeLibrary(LibHandle); // Unload the DLL.
总是报cpu内存错不知如何处理????
请大家讨论!!!
解决方案 »
- 如何向WORD,EXECL里发送粘贴消息
- 如果在DBGRID中使用下拉列表框?
- MSPJGrid 控件 问题
- 程序运行完毕时出现run time error *** at ******高分求助
- access连接问题~
- ###求bold for D7!
- 有谁用过imageEdit控件?ImgEdit.PrintImage函数中的参数快把我搞死了
- 谢谢linuxyf的代码,由于上一贴分太少,没有给你分,现单独开一贴给分,来吧:)
- 哪位大虾知道AdvStringGrid控件的使用?或在stringGrid中的行或列和并的问题
- //=====关于Query的多表查询与更新======
- 求教哪儿能够下载XP风格的菜单图标?
- DBGrid的问题.
这个东西哪来的?
dllform.connected:=@connect;
这句是什么意思?Connected是什么东西?为什么要用地址传递?
把string改为wideString或shortString或PChar等等就不用ShareMem了!
看到ShareMem怪怪的!
所以你没必要非用 String,用 ShortString 你的问题不就解决了?