Einzelnen Beitrag anzeigen

Benutzerbild von TomRaider
TomRaider

Registriert seit: 10. Nov 2003
5 Beiträge
 
#4

Re: Über Dll Komponenten auf der Form ansteuern

  Alt 25. Nov 2003, 09:29
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]
  Mit Zitat antworten Zitat