Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: ShellExecute liefert ERROR_ACCESS_DENIED

  Alt 23. Dez 2017, 10:01
Ja, bei dir ist "aktuell" PChar ein Alias für PWideChar und leider zeigt das CodeInsight den internen Typen an. (beim Compilieren wurde der Alias ersetzt)
Wenn du dir die Deklaration von ShellExecute ansiehst, siehst du den richtigen Typen.

In Bezug auf die WinAPI ist das Muster aber meistens recht leicht zu merken.
String > PChar > ShellExecute
AnsiString > PAnsiChar > ShellExecuteA
WideString/UnicodeString > PWideChar > ShellExecuteW

PS: Solches "Hat ja auch funktioniert" führte bei der Umstellung von ANSI zu Unicode zu problemen, da es danach plötzlich nicht mehr funktionierte. Das Selbe betrifft auch 32 und 64 Bit.
Hätte aber oft funktioniert, wenn die Typen wirklich gepasst hätten.

Vorallem Komplikationen beim Upgrade und für die Wiederverwendbarkeit der Codes, ist es immer Ratsam auf die Typen zu achten.
Meistens nimmt man den Typen der Eingangsparameter und wählt darauf die Casts und Funktionen,
oder ausgehend von der Funktion wird der Typ des Eingangsparameters ausgewählt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat