AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Strings in Record-Strukturen: Delphi7 vs. BDS 2009/2010
Thema durchsuchen
Ansicht
Themen-Optionen

Strings in Record-Strukturen: Delphi7 vs. BDS 2009/2010

Ein Thema von kaju74 · begonnen am 11. Dez 2009 · letzter Beitrag vom 11. Dez 2009
 
kaju74

Registriert seit: 22. Okt 2003
185 Beiträge
 
#1

Strings in Record-Strukturen: Delphi7 vs. BDS 2009/2010

  Alt 11. Dez 2009, 11:19
Hallo.

Ich hätte nochmal eine Frage bzgl. Strings in Record-Stukturen und den Unterschieden zwischen Delphi7 und BDS 2009/2010 (bezogen auf Unicode).

Nehmen wir mal folgende Struktur an, die so unter Delphi7 implementiert ist:

Delphi-Quellcode:
type
  TMyStructure = record
    LastName: string[32];
    FirstName: string[32];
  end;
  PMyStructure = ^TMyStructure;
Nehmen wir weiter an, eine Record-Instanz wird wie folgt erzeugt:

Delphi-Quellcode:
var
  MyStructure: PMyStructure;
begin
  New(MyStructure);
  MyStructure^.LastName := 'Mustermann';
  MyStructure^.FirstName := 'Max';
  ...
end;
Das Ganze unter Delphi7 kompiliert und funzt. Jetzt portieren wir das mal auf BDS 2009 und machen folgendes:

Delphi-Quellcode:
type
  TMyStructure = record
    LastName: string;
    FirstName: string;
  end;
  PMyStructure = ^TMyStructure;
Wie machen aus den ShortStrings/AnsiStrings nun UnicodeStrings. Was passiert nun bei "New(MyStructure)" und
beim Zuweisen der Record-Variablen, wenn diese statt mit einer Konstante mit einem übergebenen String (z.B. innerhalb
einer Methode) gefüllt werden?

Interessant finde ich, das ich dieses Konstrukt zwischen einer DLL und einer Host-Applikation einsetze, und ich beliebig
lange Unicode-Strings übergeben kann (SimpleShareMem/FastMM4)....hin und zurück. Dabei müsste doch nun der Speichermanager
von Delphi zunächst die Länge des Strings ermitteln und entsprechen Platz reservieren, oder?

Wie gesagt, eigentlich funktioniert das zwischen diversen Host-Applikationen und jeder Menger DLL's (PlugIns). Jetzt habe
ich aber an drei Stellen einer ziemlich großen Anwendung ein für mich nicht erklärbares Phänomen, bei dem z. B. übergebene
Strings an eine Methode plötzlich weg sind oder in einer anderen seltsamer Speichercode steht.

Ich werde also das Gefühl nicht los, das hier manchmal was nicht sooo richtig funktioniert und überlege, ob das mit diesen
Record-Strukturen zusammenhängt.

Wenn ich jetzt wieder die ShortStrings einführe [], dann muss ich halt an tausenden Codestellen einen Typcast machen (String->
AnsiString)....und daher die Frage, ob es hieran überhaupt liegen kann....!?!

Vielen Dank & Gruß,
kaju
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz