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