help me

sangdy 2003-08-23 10:11:25
library ject1;

uses
windows,
SysUtils,
Classes,
k2 in 'k2.pas';

{$R *.res}
procedure biaoti;export;stdcall;
begin
form2.show;
end;
exports
biaoti;
begin
end.
**********************
程序中有两个窗体,程序一运行,既同时装入内存。在主窗体(form1)上有一按钮,点击后,通过DLL显示form2.可老是调试失败。
...全文
16 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
fuyifan 2003-08-23
  • 打赏
  • 举报
回复
在DLL中必须Create

procedure biaoti;export;stdcall;
var
form2:TForm2;
begin
form2:=TForm2.create(nil);
form2.domodal;//最好这样,因为接下来还要释放内存
form2.free;
end;
wjowner 2003-08-23
  • 打赏
  • 举报
回复
在DLL中,form2需要重新初始化,不能直接使用主程序中已经初始化成功的实例,DLL没有办法拿到主程序中的对象指针

如果需要调用主程序的对象指针,试试看如下过程定义:
procedure biaoti(AForm: TForm);stdcall;
begin
AForm.Show;
end;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧