Forum: Object-Pascal / Delphi-Language
by Sunec,
24. Aug 2015
Hatte den PAnsiChar Cast falsch :oops:.
Naja kann passieren.
Die Delphi vs C vs C++ Diskussion finde ich lustig, damit hätte ich in diesem Thread nicht gerechnet. :-D
Forum: Object-Pascal / Delphi-Language
by Sunec,
24. Aug 2015
Es macht schon Sinn, da der Name bereits woanders im Speicher vorhanden ist und so nicht doppelt abgelegt wird. Er wird somit nur ermittelt und die Methode Name dient als Verweis.
Forum: Object-Pascal / Delphi-Language
by Sunec,
24. Aug 2015
Danke das hatte ich mir schon gedacht. Dann scheitert es wahrscheinlich an meiner Deklaration der inlined Funktion.
Die struct ist tatsächlich etwas komplexer enthält allerdings kein Char Array.
Name ermittelt anhand des Indexes, wie der Name schon erahnen lässt, den einen Namen, der in einem anderen Speicherbereich liegt.
Forum: Object-Pascal / Delphi-Language
by Sunec,
24. Aug 2015
struct mystruct
{
int index;
inline char * const name( void ) const { return ((char *)this) + index; }
int range;
};
Bezieht sich das "this" in der inlined Funktion in diesem Fall auf die struct selbst oder auf die eingebundene Funktion?
Bei der Umstellung nach Delphi wäre es ja dann entweder die Adresse der struct oder struct + 4 Bytes (aufgerund des ersten structmembers...