Zitat von
WriteProfileString:
Note: This function is provided only for compatibility with 16-bit versions of Windows. Applications should store initialization information in the registry.
Alleine dass dir die (scheinbar nicht gelesene) Hilfe seit Jahrzehnten etwas versucht zu sagen, sollte dir bei deinem alten Code arg zu Denken geben.
Zeugs in der Win.ini , obwohl Vieles seit Jahrzehnten in der Registry liegt.
Irgendwann wird sich der Hersteller sagen: Jetzt habe ich jahrzehnte lange altes Zeugs noch ausgewertet ... langsam ist Schluß, weg damit ... wer das immernoch nutzt, ist selber Schuld.
SetDefaultPrinter
Und auch hier sagt dir die Hilfe etwas.
Zitat:
Unterstützte Mindestversion : Windows 2000 Professional
Alles vor 2000 ist schon lange mehr als tot
2000 is tot
XP ist tot
Vista ist tot
7 ist tot
8 ist tot
die ersten drei oder vier Unterversionen der 10 sind bereits ausgestorben (Support ausgelaufen)
Wer kommt da jetzt auf die Idee LagacyCode einzubauen, für den Fall, dass es diese Funktion noch nicht geben sollte?
Aber daß und warum dein Code nicht funktioniert, ist sowas von klar.
SetDefaultPrinter
A und PChar .... ähhhhh, also seit Delphi 2009 PChar=P
WideChar und String=
WideString UnicodeSting