Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15

Re: Stringübergabe via Pointer - Mach ich was falsch?

  Alt 7. Mär 2007, 00:26
Zitat von DJ-SPM:
Es geht aber nur von Anwendung nach DLL, sehe ich das richtig (ich meine, das wäre ja optimal)
Nö, geht auch zurück. Siehe dazu mein Artikel.

Zur Funktionsweise. Olli hatte das mal irgendwie so ausgedrückt: Stell dir zwei Buchmacher vor (die Memorymanager) und jeder Buchmacher verwaltet ein Konto (den Speicher). Diese beiden Buchmacher können die Konten des jeweils anderen Buchmachers nicht verwalten. Das heißt, der eine Buchmacher kann vom Konto des anderen Buchmachers nichts abbucht, denn am Ende stimmt die Buchhaltung nicht mehr (AccessViolation). Will der eine Buchmacher jetzt auf das Konto des anderen Buchmachers Geld einzahlen, sagt er ihm: "Dort (die Speicheradresse) liegt so und so viel Geld (die Größe des Buffer), nimm das Geld und zahl es auf dein Konto ein." Der erste Buhmacher stellt aul den Ort (den Speicher) bereit und der andere Buchmacher kann es von dort nehmen und mit dem Geld machen, was er will. Ist die Aktion beendet, muss der erste Buchmacher, den Ort, wo er das Geld abgelegt hat, wieder aufräumen (den Speicher wieder freigeben), sonst hat er irgendwann keinen Platz mehr, wo er das Geld für den zweiten Buchmacher hinlegen könnte (der Speicher wird zugemüllt).

Zitat:
Aber wieso hat meine Variante nicht funktioniert? Ich übergebe die Adresse und sogar die Länge+1, reserviere den Krams und erhalte sogar den String. Das hätte ich schon noch gerne mal gewusst!
Du sagst ihm zwar "da liegt was für dich", aber du sagst ihm nicht was da liegt. Nimmst du einen PChar, weiß der andere, was da liegt (eine Zeichenkette) und kann was damit anfangen. Soweit meine Theorie.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat