Moin,
Mal eine Frage am Rande:
Ich habe gerade mal das Tutorial durchgeackert, weil ich ein ähnliches Problem habe. Leider lässt sich VCL_SampleDLL.dpr mit Delphi 7 nicht compilieren. Für einen Anfänger in Sachen
DLL lässt sich das Problem leider nicht so einfach lösen. Konnte einer von euch das Projekt compilieren?
internette Grüße
Tom
Das Problem sieht so aus:
Delphi-Quellcode:
library VCL_SampleDLL;
uses
Windows,
FormUnit1 in 'FormUnit1.pas' {FormDLL};
var
DLLProcNext: procedure(Reason: Integer); stdcall = nil;
exports
FormShowModal,
FormShowNormal;
procedure DLLMain(Reason: Integer); stdcall;
begin
// Hier tun wir unsern Job ...
case Reason of
DLL_PROCESS_ATTACH:
begin
DisableThreadLibraryCalls(hInstance);
end;
DLL_THREAD_ATTACH:
begin
end;
DLL_THREAD_DETACH:
begin
end;
DLL_PROCESS_DETACH:
begin
end;
end;
// Wenn DLLProcNext <> nil dann rufen wir DLLProcNext auf.
if Assigned(DLLProcNext) then try
DLLProcNext(Reason);
except
end;
end;
begin
// Wir holen uns den alten Wert von DLLProc() in die Variable DLLProcNext() und
// setzen den DLLProc() auf den Wert der Adresse von DLLMain().
DLLProcNext := Pointer(InterlockedExchange(Integer(DLLProc), Integer(@DLLMain)));// î
// DLLMain() wird mit DLL_PROCESS_ATTACH aufgerufen, da unsere DLLMain() sonst
// nicht mehr dran käme.
DLLMain(DLL_PROCESS_ATTACH);
end.
Fehlermeldung:
[Fehler] VCL_SampleDLL.dpr(42): Nicht genügend wirkliche Parameter
[edit=sakura]Delphi-Tag geschlossen Mfg, sakura[/edit]