关于在dll中变量引用的问题(50分)

  • 主题发起人 主题发起人 fjx_jwf
  • 开始时间 开始时间
F

fjx_jwf

Unregistered / Unconfirmed
GUEST, unregistred user!
程序见下,问题在后面
library Project2;

uses
SysUtils,
Classes,
Dialogs,
Forms,
Unit2 in 'Unit2.pas' {Form2};

{$R *.RES}
var
ccc: Pchar;

procedure OpenForm(mainForm:TForm);stdcall;
var
Form1: TForm1;
ptr:PLongInt;
begin
ptr:=@(Application.MainForm);
ptr^:=LongInt(mainForm);
Form1:=TForm1.Create(mainForm);
end;问题是我在form1中如何才能引用前面定义的ccc这个变量
 
这个 ccc 定义在这里 form1 是没法访问的,建议 ccc 的定义写在 form1 的 unit 中,那就没问题了
 
通过系统交换文件
Createfilemapping、mapviewoffile访问
 
是这样的:我在主程序中有一个SocketConnection1:TSocketConnection;我想将它传给
dll中mainfrm的socketconnection1,但老是在报错。dll中的函数如下:
procedure OpenForm(mainForm:TForm;connet:TSocketConnection);stdcall;
var
mainfrm: Tmainfrm;
pmainform:PLongInt;
begin
pmainform:=@(Application.MainForm);
pmainform^:=LongInt(mainForm);
mainfrm:=Tmainfrm.Create(mainForm);
mainfrm.connect1:=connet;
showmessage(mainfrm.connect1.servername);//这儿能正常显示servername
mainfrm.FormStyle:=fsMDIChild;
end;
但在mainfrm中showmessage(connect1.servername);却是空的
 
加个参数,将CCC传入
 

Similar threads

I
回复
0
查看
662
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
639
import
I
后退
顶部