我想用delphi写个dll文件,该文件一旦被宿主程序加载(如DLL_loader)后,自动出现个窗体和按钮,点按钮后弹出通用对话框来选择指定文件,最后能够加载指定问价到自身。
这样的dll我在网上见到过,很简单的。可是因为对delphi不熟悉,再加上现在拼凑的小程序点了按钮不弹出选择对话框,只有点关闭才弹出。。。下面附上个人写的一点源代码,望高手指教,好的话加分!!!
.dpr文件部分代码:
procedure DllEnterPoint(Reason: Integer);
begin
if (Reason = DLL_PROCESS_ATTACH)
then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end
end;
begin
DLLProc := @DLLEnterPoint;
DllEnterPoint(DLL_PROCESS_ATTACH);
end.
========================================
.pas部分核心代码:
procedure TForm1.Button1Click(Sender: TObject);
var
threadID:THandle;
begin
CreateThread(nil, 0, @fun1, nil, 0, threadID);
end;
function fun1:Integer;stdcall;
var
openDialog:TOpenDialog;
begin
openDialog := TOpenDialog.Create(nil);
if openDialog.Execute then
end;
end.
我已经写好大部分代码,上面只是截取部分核心代码。
DLL加载时能够弹出小窗,但是点了按钮后程序假死,就是这个情况。
我使用创建线程做的,如果不创建也是假死,我想跟OpenDialog哪个地方出问题了!
请高手帮忙解决这个问题~~