Я добавляю вызов функции окон SetProcessDpiAwareness в качестве первой вещи в приложении Delphi XE7 (после динамической загрузки библиотеки shcore). Я знаю, что предпочтительнее использовать манифест для установки значения DPIAware, и у меня это работает отдельно, и я буду использовать его в конечном итоге. Однако во время разработки я хочу использовать параметр командной строки для установки значения DPIAwareness, иначе мне придется перестроить приложение, чтобы изменить этот статус.Код ошибки SetProcessDpiAwareness
Проблема заключается в том, что SetProcessDpiAwareness возвращает код ошибки $ 800700A0. Это не описано в описании функции, что означает код?
А я нашел его, благодаря ответу смотреть на параметр, я объявил тип функции неправильно, я имел:
TSetDPIFunc = функция (константный PROCESS_DPI_AWARENESS): HRESULT; STDCALL;
, но PROCESS_DPI_AWARENESS не был определен как перечисление. Изменено на следующее, и теперь оно отлично работает:
TSetDPIFunc = function (const x: Integer): HRESULT; STDCALL;
Вы вызываете 'SetProcessDPIAwareness' или' SetProcessDPIAware'? Название предлагает первое. Последний не возвращает код ошибки, ненулевое возвращение означает, что функция выполнена успешно. Пожалуйста, отредактируйте вопрос, чтобы очистить. –
Если вы действительно звоните в SetProcessDPIAwareNESS, пожалуйста, покажите нам, с каким аргументом вы его называете! – CherryDT
Функция SetProcessDpiAwareness, извините опечатка в оригинальной записи. – kaj66