Zitat von
Spider:
[edit2] Ich sachmal so: Sobald die Procedure SearchLanguages fertig ist, steht nur noch Murks drinne
[/edit2]
Darf ich raten? Der zuletzt eingetragene Eintrag stimmt?
Die Strings sind in der
DLL als Konstanten eingetragen. Die Adresse dieser Konstanten reichst du nun an die PChars weiter. Das Auslesen funktioniert wunderbar, solange an diesen Adressen tatsächlich was brauchbares steht, also solange die
DLL geladen ist. Durch deine Schleife wird die erste gefundene
DLL geladen, abgearbeitet und anschließend die zweite geladen. Ich kenne die Klasse zu FDLLCommunicator nicht, aber ich nehme mal an, du gibst die
DLL korrekt wieder frei. Entsprechend entfernst du die Daten, auf die deine PChars zeigen. Du solltest wirklich die Strings dauerhaft im Adressbereich deines Hauptprozesses sichtbar machen. Ich weiß nicht genau, wie GetMem() sich über Module-Grenzen hinweg verhält, aber eigentlich sollte es damit gehen, um in der
DLL Speicher zu allokieren, den der Hauptprozess sieht.