Thema: PlugIn-System

Einzelnen Beitrag anzeigen

Tossi65

Registriert seit: 5. Mär 2005
21 Beiträge
 
Delphi 7 Enterprise
 
#22

AW: PlugIn-System

  Alt 15. Nov 2010, 17:59
So ein Problem gelöst nu kommt ein neues.
Delphi-Quellcode:
procedure LadeModule;
var
  StrPfad: String;
  StrSuchPfad: String;
  SR: TSearchRec;
  FileAttrs: Integer;
  AHandle : Cardinal;
begin
  StrPfad := IncludeTrailingPathDelimiter( ExtractFilePath(ParamStr(0)))+ 'Module\';
  FileAttrs:= faAnyFile;
  StrSuchPfad := StrPfad + '*.mod';
  if FindFirst(StrSuchPfad, FileAttrs, SR) = 0 then
  begin
    repeat
      try
        if (SR.Attr and FileAttrs) = SR.Attr then
        begin
  // AHandle := LoadLibraryEx(PChar(StrPfad + Sr.Name),0,LOAD_LIBRARY_AS_DATAFILE);
          AHandle := LoadLibrary(PChar(StrPfad + Sr.Name));
          if AHandle > 0 then
          begin
            FModulListe.AddObject(Sr.Name,Pointer(AHandle));
            //Warum kracht es hier bei LoadLibrary??
            FreeLibrary(AHandle);
          end;
        end;
      except

      end;
    until FindNext(SR) <> 0;
    //Warum kracht es hier??
    FindClose(SR);
  end;
end;
Ich lade meine Module in eine Liste. Eigentlich kein Problem. Ich muss eigentlich mit LoadLibrary benutzen, damit die Initialisierung in den Forms der Module aufgerufen wird. So werden Die Forms in eine 2. Liste aufgenommen. Bis hierher
geht alles aber dann mit FreeLibrary() kommt dann eine Fehler bei Ardesse 000000!?!?!?!?!

Auch wenn ich die Registrierung im Modul ausmache. Mit LoadLibraryEx kommte der Fehler nicht.

Und dann kracht es bei FindClose mit "ungültiger Zeiger".

Kein Plan
  Mit Zitat antworten Zitat