大家好:
我用Delphi 7 写了一个串口通讯应用程序,它的“工程文件”的代码如下:
************************************************************************
program Project1;uses
Forms,
Unit1 in 'Unit1.pas' {Form1};{$R *.res}begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.*************************************************************************这个应用程序能实现一个完整的通讯功能。现在我想把它生成DLL格式的动态连接库
文件,用来让非Delphi程序调用。请问各位高手我应该怎么改呢?请前辈们指教。
我用Delphi 7 写了一个串口通讯应用程序,它的“工程文件”的代码如下:
************************************************************************
program Project1;uses
Forms,
Unit1 in 'Unit1.pas' {Form1};{$R *.res}begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.*************************************************************************这个应用程序能实现一个完整的通讯功能。现在我想把它生成DLL格式的动态连接库
文件,用来让非Delphi程序调用。请问各位高手我应该怎么改呢?请前辈们指教。
解决方案 »
- 用WIN32 INTERNET API实现ftp上传文件报错
- 高手帮我看看这个代码那里有问题啊~~~谢谢了。。。。
- memo控件能修改行距吗?
- 保存时,提示“无法更新定位行。一些可能已在最后一次读取后已更改。”,求助!
- 关于远程*.cds文件的动态创建及及时更新?(在线等)
- 文件时间的取得方法
- 大家好,请问哪位大哥大姐手头有用于软件界面的XP位图或图标,非常感谢。小弟Email:
- 求助……!!!
- 用作客户端的CGI程序如何和服务器通信?SOS!毕业设计急需,各位大侠指教!
- mssql 有没有'包含'的操作符:如果我想找出字段 A 的内容包含在字符串'is a dog'的记录,sql语句where部分怎样写
- 不用控件,如何得到mp3文件时间??
- 菜鸟一問:Delphi5的DBE能边ORACLE8.16么
那就在工程文件里定义创建窗体,撤销窗体,以及你想要调用的函数。如果你没有用什么控件也不用form做容器的话,
就不要封装form了,按照一般的dll文件做法,直接把你想要调用的函数输出就好了。
您好:
我的这个程序用了控件,必须要用form当容器。请您简单的给我个提示好吗?没有别的输出
函数,只是为了让非Delphi程序调用这个动态连接库是出现这个应用程序窗体。
请指导。
我先到http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=68276 看看太谢谢你了。
这个帮助不是已经说得很清楚了吗?
你还有什么不明白的?
我给你一个简单的示例,你自己按照改吧。dll工程文件
library Project2;uses
SysUtils,
Classes,
forms,
Unit2 in 'Unit2.pas' {Form1};{$R *.res}
procedure LoadForm(AppHandle:THandle);stdcall;
begin
Application.Handle:=AppHandle;
Form1:=TForm1.Create(Application);
Form1.Show;
end;
procedure UnLoadForm();stdcall;
begin
if Assigned(Form1) then
FreeAndNil(Form1);
end;
exports
LoadForm,
UnLoadForm;
begin
end.调用dll的工程unit1.pasunit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1; procedure LoadForm(AppHandle:THandle);stdcall;external 'Project2.dll';
procedure UnLoadForm();stdcall;external 'Project2.dll';
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); //打开窗体。
begin
loadform(application.Handle);
end;procedure TForm1.Button2Click(Sender: TObject); //关闭窗体。
begin
UnLoadForm();
end;end.
http://expert.csdn.net/Expert/topic/2516/2516793.xml?temp=.2864191