Eben nicht was steht auf meinem ScreenShot?
Selbstverständlich verwenden Delphi-Versionen vor 2009 ShellExecute als "Alias" für ShellExecuteA. OK, vielleicht war "ältere Delphi-Version" zu unkonkret; gemeint war Delphi < 2009, eben Nicht-
Unicode-Delphis.
Zitat:
Kein Argument.
Das ist kein Argument für diejenigen, die alte Delphis verwenden? Sehr rücksichtsvoll von dir...
Zitat:
Es ist nicht die frage ab welcher Delphi Version sondern die frage steht im Raum warum so eine bescheidene Krankhafte Abwärtskompatibilität.
Wo ist da eine krankhafte Abwärtskompatibilität? Im Gegenteil: Ich find's gut, wenn Code von vor 10 Jahren auch noch in einem aktuellen Delphi läuft. Das funktioniert aber nicht, wenn die Datentypen sich geändert haben, weil man unsauber gearbeitet hat - eine Vermischung von Datentypen ist unsauber.
Zitat:
Warum soll ich also wenn wie im Shot gezeigt bei ShellExecute hier PChar anstelle von PWideChar verwenden?
Solange du den Code
nur für dich schreibst oder nur für einen ganz bestimmten Compiler, spielt es keine Rolle. Aber wir sind hier in der Öffentlichkeit, und da ist es immer eine gute Idee, auf andere Rücksicht zu nehmen, und dazu gehören auch Nutzer von Delphi älter 2009. Andererseits müsstest du dir überhaupt keinen Kopf darüber machen, ob nun PChar ein PWideChar ist oder nicht, wenn du einfach den generischen Typ PChar benutzt (außer eben an den Stellen, wo ein expliziter
Ansi-/Wide-Typ verlangt wird, was ziemlich selten ist).
Grüße
Dalai