Ich bin ein Aufruf der SetProcessDpiAwareness Windows-Funktion als erste Sache in meiner Delphi XE7-Anwendung (nach dem dynamischen Laden der Shcore-DLL). Ich weiß, dass es vorzuziehen ist, ein Manifest zu verwenden, um den DPIAware-Wert festzulegen, und ich habe das separat arbeiten und wird es schließlich verwenden. Während der Entwicklung möchte ich jedoch einen Kommandozeilenparameter verwenden, um den DPIA-Wert einzustellen, ansonsten muss ich die App neu erstellen, um diesen Status zu ändern.SetProcessDpiAwareness Fehlercode
Das Problem ist, dass SetProcessDpiAwareness den Fehlercode $ 800700A0 zurückgibt. Das ist nicht in der Funktionsbeschreibung dokumentiert, was bedeutet der Code?
Ah ich es gefunden habe, dank der Antwort auf den Parameter suchen, ich die Funktionstyp falsch erklärt hatte, ich hatte:
TSetDPIFunc = function (konst PROCESS_DPI_AWARENESS): HRESULT; stdcall;
, aber PROCESS_DPI_AWARENESS wurde nicht als Aufzählung definiert. Geändert zu den folgenden und es funktioniert jetzt gut:
TSetDPIFunc = funktion (const x: Integer): HRESULT; stdcall;
Rufen Sie 'SetProcessDPIAwareness' oder' SetProcessDPIAware' an? Der Titel deutet auf Ersteres hin. Letztere gibt keinen Fehlercode zurück, eine Rückgabe ungleich Null bedeutet, dass die Funktion erfolgreich war. Bitte bearbeiten Sie die zu löschende Frage. –
Falls Sie tatsächlich SetProcessDPIAwareNESS aufrufen, zeigen Sie uns bitte, mit welchem Argument Sie es nennen! – CherryDT
Die Funktion ist SetProcessDpiAwareness, sorry Typo im ursprünglichen Beitrag. – kaj66