#include <Shlobj.h> int setdpi() { // 定义一个函数指针类型 typedef HRESULT (WINAPI *SetProcessDpiAwarenessFunc)(int value); // 加载 Shcore.dll HMODULE hModule = LoadLibrary("Shcore.dll"); if (hModule == NULL) { // 加载失败,处理错误 return -1; } // 获取 SetProcessDpiAwareness 函数指针 SetProcessDpiAwarenessFunc pFunc = (SetProcessDpiAwarenessFunc)GetProcAddress(hModule, "SetProcessDpiAwareness"); if (pFunc == NULL) { // 获取失败,处理错误 FreeLibrary(hModule); return -1; } // 调用 SetProcessDpiAwareness 函数,设置进程为感知每个监视器模式 //注:0: DPI unaware, 1: system DPI aware, 2: per-monitor DPI aware HRESULT hr = pFunc(1); if (FAILED(hr)) { // 调用失败,处理错误 FreeLibrary(hModule); return -1; } // 释放 Shcore.dll FreeLibrary(hModule); //返回0,表示成功 return 0; }
代码原理见注释(就是动态加载dll文件,算是一个简单地应用吧)
标签:...,return,hModule,SetProcessDpiAwareness,pFunc,dll,FreeLibrary,编译器 From: https://www.cnblogs.com/cytxzgbp/p/setdpi.html