Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi string ein Alias für UnicodeString (https://www.delphipraxis.net/198780-string-ein-alias-fuer-unicodestring.html)

EWeiss 30. Nov 2018 12:03

AW: string ein Alias für UnicodeString
 
Zitat:

Das ist doch gänzlich was anderes als was du weiter oben im Thread verwendest.
Nun ja etwas muss man schon selber machen..

Delphi-Quellcode:
function GetVerInfo(FileName: string): WideString;
var
  VI: TVerInfo;
  TransIdx: integer;
  Trans: string;
  StrIdx: integer;
  StrName: string;
begin
  VI := TVerInfo.Create(FileName);
  try
    if VI.HasVerInfo then
    begin
      for TransIdx := 0 to Pred(VI.TranslationCount) do
      begin
        Trans := VI.Translations[TransIdx];

        // display all standard strings
        for StrIdx := Low(cStrNames) to High(cStrNames) do
        begin
          StrName := cStrNames[StrIdx];
          if StrName = 'FileDescription' then
          begin
            Result := VI.Strings[Trans, StrName];
            Break;
          end;
        end;
      end;
    end
    else
      Result := '';
  finally
    VI.free;
  end;
end;
Siehe..
Delphi-Quellcode:
Result := VI.Strings[Trans, StrName];


Delphi-Quellcode:
property Strings[const Trans, Name: string]: string read GetString;
Delphi-Quellcode:
function TVerInfo.GetString(const Trans, Name: string): string;
begin
  Assert(fHasVerInfo);
  Result := GetVerInfoStr(fVerInfo, Trans, Name); // <<< hier der Part
end;
Delphi-Quellcode:
function GetVerInfoStr(const Buffer: Pointer;
  const Trans, StrName: string): string;
gruss

TiGü 30. Nov 2018 12:20

AW: string ein Alias für UnicodeString
 
Kannst du vernünftig und logisch schlüssig erklären, warum du an der Stelle als Result-Typ WideString nimmst?
Warum benennst du deine eigene Funktion exakt gleich zu einer Funktion aus einen fremden verwendeten Quelltext?
Du machst dir doch selber das Leben schwer.

EWeiss 30. Nov 2018 12:27

AW: string ein Alias für UnicodeString
 
Zitat:

Kannst du vernünftig und logisch schlüssig erklären, warum du an der Stelle als Result-Typ WideString nimmst?
Weil meine Funktion innerhalb meiner DLL WideString benötigt.

Zitat:

Warum benennst du deine eigene Funktion exakt gleich zu einer Funktion aus einen fremden verwendeten Quelltext?
Wüsste jetzt nicht was da gleich ist.
GetVerInfo <> GetVerInfoStr

Die andere GetVerInfo wird gar nicht aufgerufen bzw. verwendet.

Aber.. Das Thema ist eigentlich erledigt weil ich es innerhalb meiner DLL gefixt habe. ;)

gruss

TiGü 30. Nov 2018 12:31

AW: string ein Alias für UnicodeString
 
Innerhalb deines eigenen Moduls besteht doch gar keine Notwendigkeit auf WideString zu gehen.

EWeiss 30. Nov 2018 12:40

AW: string ein Alias für UnicodeString
 
Zitat:

Zitat von TiGü (Beitrag 1419766)
Innerhalb deines eigenen Moduls besteht doch gar keine Notwendigkeit auf WideString zu gehen.

Werde es nochmal gegenprüfen.. kann nichts schaden. Danke.

gruss

Uwe Raabe 30. Nov 2018 12:59

AW: string ein Alias für UnicodeString
 
Keine Ahnung, ob das hier relevant ist, aber vielleicht hilft es ja: Der Shared Memory Manager

Zitat:

Zitat von Der Shared Memory Manager
Wenn eine DLL in Win32 Routinen exportiert, die lange Strings oder dynamische Arrays als Parameter oder als Funktionsergebnis übergeben (entweder direkt oder in Records bzw. Objekten), müssen die DLL und ihre Client-Anwendungen (oder -DLLs) die Unit ShareMem verwenden.


EWeiss 30. Nov 2018 13:12

AW: string ein Alias für UnicodeString
 
Danke für eure Informationen.
Wie ich schon sagte..

Zitat:

Ich habe es gelöst musste nur an der untersten Ebene anfangen zu suchen und dort die Datentypen nach WideString umlegen.
Da mir EurekaLog und ReportMemoryLeaksOnShutdown nichts mehr melden sollte es in Ordnung sein.
Ich habe keine Speicherlecks mehr.
Innerhalb der Anwendung besteht kein Grund mehr WideStrings zu verwenden habe es korrigiert und nochmals auf Speicherlecks geprüft.
Scheint alles IO zu sein wenn man sich denn auf EurekaLog und ReportMemoryLeaksOnShutdown verlassen kann.

gruss

QuickAndDirty 30. Nov 2018 14:42

AW: string ein Alias für UnicodeString
 
Welches war der Stringtyp der von Windows als OLE Objekt verwaltet wurde und weder Freigabe noch Management durch den Delphi Memorymanager oder fastmem brauchte?

mkinzler 30. Nov 2018 14:47

AW: string ein Alias für UnicodeString
 
WideString. Aber nur bei Verwendung von OLE.

EWeiss 30. Nov 2018 15:11

AW: string ein Alias für UnicodeString
 
Ich verwende viele WideStrings innerhalb meiner DLL diese arbeitet aber global mit Interfaces
Mein Fehler war früher das ich nicht wusste das Strings Unicode fähig sind das war der einzige Grund das ich WideString eingebaut habe.
Das jetzt alles umzuschreiben macht am ende mehr kaputt als das es irgendeinen Vorteil bringt, daher lasse ich es so.

Habe bisher hier keine Probleme. (Abgesehen vom ToolTip warum auch immer 64Bit)
Ja jetzt kommt der Aufschrei.. Nein lieber PWideChar verwenden. :) Ist aber auch kein Allheilmittel

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 Uhr.
Seite 3 von 3     123   

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 by Thomas Breitkreuz