@sir: Hast natürlich Recht, das habe ich jetzt grob unterschlagen.
Zitat von
edosoft:
hmm aber wärs dann nicht einfacher ich reserviere in der
dll-datei den speicherbereich den ich für die ausgabe benötige und geb den pointer dadazu und die größe zurück und kopiere dann im hauptprogramm mit move() die daten in eine dort definierte variable? so brauche ich die funktion nur einmal ausführen und hab dann gleich grüße des puffers und den puffer selber.
Nein, denn wenn die
DLL den Speicher reserviert, dann muss sie ihn auch wieder freigeben. Und wie willst du das bewerkstelligen?
Eine Möglichkeit wäre über Interfaces. Und dann bist du schon fast bei
COM.
Noch etwas. Die Ausgabe von einem String wird immer am Nullbyte abgeschnitten, weil Windows wieder PChars verwendet.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.