AGB  ·  Datenschutz  ·  Impressum  







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

VistaTaskDialog

Ein Thema von Willie1 · begonnen am 20. Aug 2020 · letzter Beitrag vom 24. Aug 2020
 
Benutzerbild von himitsu
himitsu

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

AW: VistaTaskDialog

  Alt 22. Aug 2020, 16:25
Also in dem Fall war es eigentlich falsch, denn Michael hätte hier PAnsiChar verwenden müssen,
da explizit SHMessageBoxCheckA verwendet wurde, was aber nicht so leicht auffällt, da nicht der Name verwendet wurde und auch der Typ nicht A heißt.

Zitat:
SHMessageboxCheck := GetProcAddress(hLib, PChar(185));
185 ist die ID für SHMessageBoxCheckA.

Die ID für SHMessageBoxCheckW kenn ich jetzt nicht, also würde ich hier mal schauen, ob es nicht doch besser über den Namen geht.

Delphi-Quellcode:
type
  TSHMessageBoxCheck = function(hWnd: THandle; Text, Title: PWideChar;
    dwType: DWORD; Default: Integer; RegVal: PWideChar): Integer; stdcall;

SHMessageboxCheck := GetProcAddress(hLib, 'SHMessageBoxCheckW');
Hätte Michael hier ANSI verwendet, dann hätte dir der Compiler sofort eine Warnung gezeigt,
da PAnsiChar und PWideChar/PChar nicht kompatibel sind.

Der Rest darf auf PChar und String bleiben, da PChar und PWideChar mit der UnicodeAPI kompatibel sind. (früher kompatibel mit PAnsiChar, bei der ANSI-API)
Und selbst im unwahrscheinlichen Fall (im Delphi), oder z.B. im FreePascal, wird der Compiler nun eine eventuelle Inkompatibilität melden.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (22. Aug 2020 um 16:32 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 22:29 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