#include <winuser.h> size_t width = (size_t)GetSystemMetrics(SM_CXBORDER); size_t height = (size_t)GetSystemMetrics(SM_CYBORDER);
但是,这是一个未解决的外部链接错误( LNK1120 )失败。 我已经尝试链接到user32.lib( 这里logging ),并收到相同的错误,以及链接到wmbase.lib( 这里logging ),并收到错误,wmbase.lib不存在! 我究竟做错了什么?
请注意,我只使用普通的醇'C – 而不是C ++。 这是正确的function来获得主显示器的屏幕分辨率(以像素为单位)吗?
我正在尝试在MSVC上编译此,但更喜欢一个解决scheme可移植到其他编译器。
什么可能会导致OpenGL在“开始debugging”与“不开始debugging”选项下performance不同?
删除静态指针指向的dynamic内存
如何使用IPropertyStore在Windows中使用C ++访问mp3元数据?
谢谢。
编辑
所以看起来像我正在寻找的参数是SM_CXSCREEN和SM_CYSCREEN ,而不是SM_CXBORDER和SM_CYBORDER 。 但是,我仍然无法设法得到这个编译。
这是实际的错误,如果澄清任何事情(链接到user32.lib时):
screen.obj : error LNK2019: unresolved external symbol __imp__GetSystemMetrics@4 referenced in function _getMaindisplaySize buildlib.win32-2.6foomodulebitmap.pyd : Fatal error LNK1120: 1 unresolved externals error: command '"C:Program FilesMicrosoft Visual Studio 9.0VCBINlink.exe"' Failed with exit status 1120
(我试图编译一个Python / C模块,这就是为什么你看到奇怪的目录)
在PDCurses中设置整个窗口的背景颜色
你如何获得一个全局variables被实例化为win32下C ++的第一件事情?
为什么没有在Linux中没有库说明符错误?
Linux时间命令输出中real,user和sys的含义
OpenCV_FOUND为FALSE,因此包“OpenCV”被认为是未find的
你想#include <windows.h>而不是<winuser.h> 。 原来,这可能是原型上的某些修饰符错误的原因。
编辑:由于你仍然有问题,也许我们可以从一个简单的测试开始,看看你得到什么。 幸运的是, GetSystemMetrics()不需要窗口句柄或任何东西,所以e可以从简单的控制台应用程序调用它:
#include <windows.h> #include <iostream> int main() { size_t width = (size_t)GetSystemMetrics(SM_CXSCREEN); size_t height = (size_t)GetSystemMetrics(SM_CYSCREEN); std::cout << "width = " << width << "n"; std::cout << "height = " << height << std::endl; return 0; }
这是编译和运行这个屏幕转储:
D:Csource>cl screen_res.cpp user32.lib Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86 copyright (C) Microsoft Corporation. All rights reserved. screen_res.cpp Microsoft (R) Incremental Linker Version 9.00.30729.01 copyright (C) Microsoft Corporation. All rights reserved. /out:screen_res.exe screen_res.obj user32.lib D:Csource>screen_res width = 1600 height = 1200
如果这不能编译和运行,你的安装可能有问题。 如果是这样,那么问题可能在你正在进行的项目的某个地方。
这不会帮助你的链接错误,但是你也质疑这是否是正确的方式来获得显示大小。 你传递给GetSystemMetrics的参数将不会返回你想要的。 检查文档中的可用标志。 另外考虑使用SystemParametersInfo 。 使用哪个呼叫取决于您正在尝试查找的内容的上下文 – 监视大小与工作区等。
解决的办法是在你的一个模块中定义COMPILE_MULTIMON_STUBS。
#define COMPILE_MULTIMON_STUBS #include <multimon.h>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。