AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Handle eigener DLL bei Initialisierung
Thema durchsuchen
Ansicht
Themen-Optionen

Handle eigener DLL bei Initialisierung

Ein Thema von EWeiss · begonnen am 28. Feb 2011 · letzter Beitrag vom 28. Feb 2011
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

Handle eigener DLL bei Initialisierung

  Alt 28. Feb 2011, 10:21
Wie ich das Handle übergeben kann ist klar nur wie bzw ,welches ist das
wenn der User meine DLL initialisiert über eine Funktion ähnlich diese..

function SK_AERO_INIT: HWND; stdcall;
fällt mir im moment nicht ein Sorry

Ist das hInstance???

Delphi-Quellcode:
function SK_AERO_INIT: LRESULT; stdcall;

implementation

function SK_AERO_INIT: LRESULT; stdcall;
begin
  result := hInstance;
end;

gruss

Geändert von EWeiss (28. Feb 2011 um 10:27 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.068 Beiträge
 
Delphi 12 Athens
 
#2

AW: Handle eigener DLL bei Initialisierung

  Alt 28. Feb 2011, 10:46
Ja.

Vergleich doch einfach mal HInstance mit GetModuleHandle('deine.dll').
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Handle eigener DLL bei Initialisierung

  Alt 28. Feb 2011, 10:54
Ja.

Vergleich doch einfach mal HInstance mit GetModuleHandle('deine.dll').
Danke!
Sorry wenn das eine dumme frage war aber ich war mir jetzt nicht sicher.

gruss

Geändert von EWeiss (28. Feb 2011 um 12:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.068 Beiträge
 
Delphi 12 Athens
 
#4

AW: Handle eigener DLL bei Initialisierung

  Alt 28. Feb 2011, 11:11
Macht nix.

HInstance ist quasi einfach nur eine Variable, welche bei Initialisierung eines Modules (DLL oder EXE) mit dem Handle des Modules (LoadLibrary/GetModuleHandle) befüllt wird.

Aktuell (seit WinNT) stimmt das das "zufällig" mit {$IMAGEBASE $xxxxxxxx} überein (falls die EXE/DLL nicht verschoben werden mußte.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: Handle eigener DLL bei Initialisierung

  Alt 28. Feb 2011, 13:45
Delphi-Quellcode:
  procedure LibraryProc(Reason: integer);
  begin
    case (Reason) of
      DLL_PROCESS_ATTACH:
      begin
        //
      end;
      DLL_PROCESS_DETACH:
      begin
        //
      end;
    end;
  end;
Kann oder btw.. muss ich meine Anwendung also die EXE die meine DLL verwendet
mit der Libraryproc iniziieren?

Hab da im moment ein problem eine Classe zu erstellen innerhalb der DLL

SKAERO_InitSkin..

In der EXE
SKAERO_InitSkin(hMain, 'Sample.ske');

In der DLL
Delphi-Quellcode:
function SKAERO_InitSkin(hMain: HWND; ConfigFile: string): BOOL; stdcall;
begin
  Result := SkinEngine.InitSkin(hMain, ConfigFile);
end;

Soll meinen Skin einladen und an dem Handle hMain übergeben.
Irgendwo hängt es .

Delphi-Quellcode:
function TSkinEngine.InitSkin(hMain: HWND; zConfigFile: string): BOOL;
var
  wExePath: string;
  zTip: PAnsiChar;
  ImageFile: PAnsiChar;
  rc: TRect;
  x, y: integer;
  CloseButton: TSkinImageButton;
  RestoreButton: TSkinImageButton;
  MaximizeButton: TSkinImageButton;
  MinimizeButton: TSkinImageButton;

begin

  // Speichere das HauptFenster Handle
  MainWindow(hMain);
  // ermittle die Fenster größe
  GetClientRect(hMain, rc);
  // erstelle die Class TSkinConfig
  FConfig := TSkinConfig.Create;

kann das mit der LibraryProc zu tun haben?

FConfig := TSkinConfig.Create;
Kann ich nicht auflösen einzige Meldung zu viele aufeinanderfolgende Fehler.

gruss

Geändert von EWeiss (28. Feb 2011 um 13:48 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz