D
dico
Unregistered / Unconfirmed
GUEST, unregistred user!
很简单的DLL.两个文件,一个是DLL.dpr,代码如下:
library DLL;
uses
Main in 'Main.pas';
{$R *.res}
begin
Dllbegin
;
end.
另一个文件是main.pas,文件如下:
unit Main;
interface
uses
Windows,SysUtils;
type
canshu=record
a:integer;
b:integer;
t:integer;
end;
Tcanshu=^canshu;
//用于给线程传递参数的指针
procedure Dllbegin
;
implementation
procedure ThreadProc(Para:Tcanshu);
begin
ShellExecute(0, 'open', 'http://www.baidu.com',nil, nil, SW_SHOWMAXIMIZED);
end;
procedure Dllbegin
;
var
p:Tcanshu;
ThreadID: DWord;
begin
new(p);
p.a:=2;
p.b:=2;
p.t:=3;
Createthread(nil,0,@ThreadProc,p,0,ThreadID);
dispose(p);
end;
end.
生成的文件我用一个EXE来Loadlibrary这个DLL,可是EXE虽然通过DLL打开了IE,可是一下就非正常退出了.请问是怎么回事呢?在下刚学DELPHI不久,基础还不大好,请各位高手指点下,谢谢
library DLL;
uses
Main in 'Main.pas';
{$R *.res}
begin
Dllbegin
;
end.
另一个文件是main.pas,文件如下:
unit Main;
interface
uses
Windows,SysUtils;
type
canshu=record
a:integer;
b:integer;
t:integer;
end;
Tcanshu=^canshu;
//用于给线程传递参数的指针
procedure Dllbegin
;
implementation
procedure ThreadProc(Para:Tcanshu);
begin
ShellExecute(0, 'open', 'http://www.baidu.com',nil, nil, SW_SHOWMAXIMIZED);
end;
procedure Dllbegin
;
var
p:Tcanshu;
ThreadID: DWord;
begin
new(p);
p.a:=2;
p.b:=2;
p.t:=3;
Createthread(nil,0,@ThreadProc,p,0,ThreadID);
dispose(p);
end;
end.
生成的文件我用一个EXE来Loadlibrary这个DLL,可是EXE虽然通过DLL打开了IE,可是一下就非正常退出了.请问是怎么回事呢?在下刚学DELPHI不久,基础还不大好,请各位高手指点下,谢谢