谁能给我个DLL的例子?(10分)

  • 主题发起人 主题发起人 嫩手
  • 开始时间 开始时间

嫩手

Unregistered / Unconfirmed
GUEST, unregistred user!
DLL里包括这个函数即可:(我主要是想看看大家都怎么写,如果我写的格式不对,请更正)
procedure do
ntReboot(XP_Reboot:Boolean);stdcall;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('System/CurrentControlSet/Control/CrashControl',true);
if XP_Reboot then
Reg.WriteInteger('AutoReboot',0)
else
Reg.WriteInteger('AutoReboot',1)
finally
Reg.CloseKey;
Reg.Free;
end;
end;
 
关注中....
 
//project2.dll
library Project2;

uses
SysUtils,
Classes,
Windows,
Registry;
{$R *.res}
procedure do
ntReboot(XP_Reboot:Boolean);stdcall;
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('System/CurrentControlSet/Control/CrashControl',true);
if XP_Reboot then
Reg.WriteInteger('AutoReboot',0)
else
Reg.WriteInteger('AutoReboot',1)
finally
Reg.CloseKey;
Reg.Free;
end;
end;

exports
do
ntReboot;
begin
end.

//application
procedure do
ntReboot(XP_Reboot:Boolean);stdcall;external 'Project2.dll';

procedure TForm1.Button1Click(Sender: TObject);
begin
DontReboot(true);
end;
 
就这么简单?用不用加sharemem?它起什么作用?
 
Sharemem是用来管理内存的,如果你的dll出现内存错误,他来负责善后的处理,所以一般
要求作dll需要使用ShareMem单元,但是却不是必需的。
 
to shenloqi:
你能给我一个完整的DLL吗?想看看大家是怎么写的,学习一下。还有,你好像写过一
个类似Sharemem的对吗?能告诉比Sharemem都好在哪?
 
to shenloqi:
最近还来吗?能给个例子吗?
 
帮你揣一脚!
 
还来吗?
 
delphi5编程人员指南等好多书上都有详细讲解,建议仔细读读。
 
sharemem是专门处理String类型在DLL的传递和使用的问题的。
String是Delphi中经过特殊方法构造出来的类型,其实它是一个4字节的指针,指向一个动态
内存区域(因为String的大小事先不知道,所以采用动态分配内存的方法)。C++中没有String
类型,是用字符数组。
 
谢谢晶晶,不过我想问一直,有没有做有SDI那样的DLL,你寄的是MDI类型的,可以做成SDI的吗?
 
多人接受答案了。
 
后退
顶部