delphi 使用dll如何編程,請高手指點、。
解决方案 »
- 如何实现文件替换功能!
- 一个常见的问题,DBedit让其readonly为真就不能编辑了。可我的一窗体上有几十个DBEdit我不能下一排去啊。有什么简便的方法让这些都不能编
- 关于曲线图的问题!请赐教!急!
- 谁有1stClass 控件包的使用是说明 50分
- 怎样得到系统中正在运行的进程总数???
- 请教toolbar的问题!当toolbar做成浮动工具栏的时候,怎么双击让它回到原来的位置呢?谢谢了!
- 关于Delphi中记录的定位问题,有点不太习惯,希望大家来讨论
- 简单的问题,在线等待!
- 请教:memo中对字体的设置.
- 套接字出错如何解决??
- 大家进来看看!对你我都好!
- 有关模糊查询的问题~~~~~~~~~
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; procedure InputCCC(Text: Pchar);stdcall;
begin
ccc := Text;
end; procedure ShowCCC;stdcall;
begin
ShowMessage(String(ccc));
end; exports
OpenForm;
InputCCC,
ShowCCC;
begin
end.
调用方源代码:
unit Unit1; interface uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.DFM}
procedure OpenForm(mainForm:TForm);stdcall;External'project2.dll';
procedure ShowCCC;stdcall;External'project2.dll';
procedure InputCCC(Text: Pchar);stdcall;External'project2.dll'; procedure TForm1.Button1Click(Sender: TObject);
var
Text: Pchar;
begin
Text := Pchar(Edit1.Text);
// OpenForm(Application.MainForm);//为了调MDICHILD
InputCCC(Text);//为了实验DLL中的全局变量是否在各个应用程序间共享
end; procedure TForm1.Button2Click(Sender: TObject);
begin
ShowCCC;//这里表明WINDOWS 32位应用程序DLL中的全局变量也是在应用程序地址空间中,16位应用程序或许不同,没有做实验。
end;