AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DLL: Record aus DLL holen

Ein Thema von Die Muhkuh · begonnen am 24. Apr 2006 · letzter Beitrag vom 24. Apr 2006
 
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#5

Re: DLL: Record aus DLL holen

  Alt 24. Apr 2006, 18:44
Hier ist die komplette TLanguageDLLCommunicator-Klasse

Delphi-Quellcode:
{ TLanguageDLLCommunicator }

destructor TLanguageDLLCommunicator.Destroy;
begin
  FreeLibrary(FHandle);
  FOpened := false;
  
  inherited;
end;

function TLanguageDLLCommunicator.GetLanguageInfo: TLanguageInfoRec;
var
  func: TGetLanguageInfo;
begin
  if FOpened then
  begin
    @func := GetProcAddress(FHandle, 'GetLanguageInfo');

    if @func <> nil then
    begin
      Result := func;
    end;
  end
  else
    raise Exception.Create('DLL is not open');
end;

function TLanguageDLLCommunicator.GetLanguage: TLanguageRec;
var
  func: TGetLanguageRecord;
begin
  if FOpened then
  begin
    @func := GetProcAddress(FHandle, 'GetLanguageRecord');

    if @func <> nil then
    begin
      Result := func;
    end;
  end
  else
    raise Exception.Create('DLL is not open');
end;

procedure TLanguageDLLCommunicator.SetFileName(const Value: String);
begin
  try
    FreeLibrary(FHandle);
    FOpened := false;
  except
    { Do nothing }
  end;

  FFileName := Value;

  try
    FHandle := LoadLibrary(PChar(Value));

    if FHandle = 0 then
    begin
      raise Exception.Create('Can not load languagedll'#13#10+Value);
    end;

    FOpened := true;
  except
    raise Exception.Create('Can not load languagedll'#13#10+Value);
  end;
end;
Müsste ich GetMem für jeden einzelnen PChar aufrufen?
Wo müsste ich das dann aufrufen? In der DLL oder in meinem Programm?

[edit] Hast richtig geraten. Wenn ich nur eine DLL verwende, funktioniert das ganze Problemlos.

Könnte man nicht die Records für DLL -> Programm mit PChar machen, im Programm dann aber als String speichern?

Quasi zweimal den gleichen Records, nur verwendet das Programm Stringrecordun die DLL PChar-Records.
OK, geht nich... [/edit]
  Mit Zitat antworten Zitat
 


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 01:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz