AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Einem Array of WChar einen String zuweisen
Thema durchsuchen
Ansicht
Themen-Optionen

Einem Array of WChar einen String zuweisen

Ein Thema von s14 · begonnen am 9. Dez 2003 · letzter Beitrag vom 7. Mär 2004
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#8

Re: Einem Array of WChar einen String zuweisen

  Alt 10. Dez 2003, 11:51
Ein Hallöle von http://www.FrankNStein.de/Smiley-Wolke2.gif,

das wurde ja schon gesagt:
Code:
[b]type[/b]
  [color=olive]xxx[/color] = [b][color=red]packed[/color] record[/b]
    [color=olive]xxx[/color]: [b]Array[/b][0..MAX_[color=olive]xxx[/color] [color=red][b]- 1[/b][/color]] [b]of[/b] [color=olive]xxx[/color];
Das mit der Header-Übersetzung lasse ich lieber Robert machen.
Dabei breche ich mir auch immer was ab. http://www.FrankNStein.de/Smiley-Krank.gif

Die Typen WChar und PWChar sind nur durch die Übersetzung und Implementierung von WINDEF.H in Delphi vorhanden, die Pascal/Delphi-Typen sind WideChar und PWideChar.

Für den Type DWord (DoubleWord) ist der fundamentale Integer-Type LongWord besser als der generische Integer-Type Cardinal. (die generischen Typen Cardinal und Integer sind an die Entwicklungsumbebung angepasst und "rein zufällig" zur Zeit 32 Bit, so wie das 32 Bit-DWord - auf einem 64 Bit System sind diesen dann auch mal schnell 64 Bit lang)

Das mit StringToWideChar sieht alles in Ordnung aus.
Code:
FillChar([color=olive]ArrayOfWideChar[/color], SizeOf([color=olive]ArrayOfWideChar[/color]), #0);
StringToWideChar([color=olive]String[/color], @[color=olive]ArrayOfWideChar[/color], Min(Length([color=olive]String[/color]) + 1, [color=olive]ArrayOfWideChar_Größe[/color]));
FillChar ist zwar nicht unbedingt erforderlich, kann aber auch nicht schaden. Und wenn die Prozeduren, an die diese übergeben werden, nicht ganz sauber arbeiten, kann es sogar hilfreich sein.

[add]
Hier liegt aber auch noch ein Fehler vor:
Code:
  XcvData(
    HANDLE hXcv,
    LPCWSTR pszDataName,
[color=gray]*[/color]  PBYTE  pInputData,
    DWORD  cbInputData,
[color=gray]*[/color]  PBYTE  pOutputData,
    DWORD  cbOutputData,
[color=gray]*[/color]  PDWORD pcbOutputNeeded,
[color=gray]*[/color]  [color=red]P[/color]DWORD pdwStatus)

  XcvData(
    hXcv,
    'L"AddPort"',
[color=gray]*[/color]  @PortData1,
    SizeOf(PortData1),
[color=gray]*[/color]  nil,
    0,
[color=gray]*[/color]  nil,
[color=gray]*[/color]  [color=red]@[/color]pdwStatus)

[color=gray]*[/color] = Zeiger

http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif
Ein Therapeut entspricht 1024 Gigapeut.
  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 13:06 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