AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

cmd output in memo - Bug

Ein Thema von wschrabi · begonnen am 28. Jul 2020 · letzter Beitrag vom 28. Jul 2020
 
Benutzerbild von himitsu
himitsu

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

AW: cmd output in memo - Bug

  Alt 28. Jul 2020, 19:03
Ups, falsch geguckt. Dachte im TSecurityAttributes gibt es auch ein paar "Char".
Wenn die API keine Chars als Parameter oder in Records hat, dann braucht man sie natürlich nicht doppelt.

Microsoft kam auf die geile IDE seine Webseite umzubauen, so funktionieren viele Links nicht mehr.
https://docs.microsoft.com/en-us/win...api-createpipe
https://docs.microsoft.com/en-us/pre...79560(v=vs.85) = toter Link
https://docs.microsoft.com/en-us/pre...79560(v=vs.85) = richtig

anderes Beispiel, was dich aber betrifft (CreateProcessA)
https://docs.microsoft.com/en-us/win...createprocessa
wobei hier nun "alles" mit W, weil ja jetzt unicode, aber da dein ACommand und AParameters Strings und keine UnicodeStrings sind, hier natürlich "alles" dynamisch und ohne A oder W.
Und natürlich muß auch OemToAnsi unbedingt als ANSI implementiert werden, A) weil ANSI ankommt und B) weil man bei der Unicode-Version mit den Parametern aufpassen muß, denn dort ist es verboten inplace übersetzen zu lassen, also niemals mit dem selben Ein- und Ausgabepuffer.

Alles was pBuffer betrifft muß ANSI sein, vor der Übersetung OEM to ANSI (ich weiß, aber OEM ist auch eine ANSI-Codepage und mit "ToANSI" ist hier die lokale ANSI-Codepage gemeint)
Aber ich würde statt MSDN-Library durchsuchenOemToAnsi empfehlen TMBCSEncoding.Create(437, 0, 0) oder TEncoding.GetEncoding(437) zu verwenden.
https://docs.microsoft.com/en-us/win...ntl/code-pages


Allerdings kommt es auch drauf an, was für eine ANSI-Codepage wirklich aus dem Programm kommt,
denn das kann OEM, ANSI, UTF-8 oder sonstwas sein,
somit wäre es bestimmt intelligent die CP_OEM (437) nicht direkt zu übergeben, sondern als Parameter.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (28. Jul 2020 um 19:31 Uhr)
  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 17:13 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