Einzelnen Beitrag anzeigen

Hybrid666

Registriert seit: 15. Jul 2006
Ort: Erster Stock
250 Beiträge
 
Delphi 7 Personal
 
#1

Dynamisches Laden von DLL Dateien [PROBLEM]

  Alt 17. Dez 2006, 22:13
So ich habe folgendes Problem:

Ich schreibe ein Programm das "Plugins" in form von libarys nutzt, wenn eine solche libary geladen wird (durch auswahl in einer liste), so wird in der DLL die function GetDllInfo aufgerufen um die funktionen der DLL zu erhalten.

Wenn ich dies nun tue mit folgendem Code:
Delphi-Quellcode:
procedure TForm1.cbgroupChange(Sender: TObject);
type TDllFunc = function(): string;
var
  i: integer;
  s: string;
  DLLHandle: THandle;
  func: TDllFunc;
  t: PChar;
begin
  cbcommand.Clear;
  DLLHandle := LoadLibrary(PChar('Plugins\' + cbgroup.text + '.dll'));
  if DLLHandle >= 32 then
  begin
    @func := GetProcAddress(DLLHandle, 'DLLGetInfo');
    if Assigned(func) then s := func();
  end;
  ShowMessage(s);
  FreeLibrary(DLLHandle);
end;
(Das ShowMessage ist zu testzwecken da)

Dann wird das was kommen soll per Showmessage richtig ausgegeben, dannach erhalte ich aber einen Error:
INVALID POINTER OPERATION und der fehler wird an der stelle FreeLibrary(DLLHandle); angezeigt...wenn ich nun aber nichts in der liste wähle (also KEINE dll wird geladen) so bekomme ich beim beenden des programmes den selben error....woran kann das nun liegen??

ICH BEDANKE MICH IM VORRAUS FÜR ALLE ANREGUNGEN UND FÜR JEDE HILFE

MfG Hybrid666
  Mit Zitat antworten Zitat