gpt4 book ai didi

c++ - 在 Qt4 应用程序中使用 user32.dll 中的函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:36:11 27 4
gpt4 key购买 nike

我无法在我的 Qt 应用程序中使用函数 MonitorFromPoint。我在 Windows XP 上有最新的 Qt SDL 2010.05 和 mingw

#include <QtCore/QCoreApplication>
#include<windows.h>
#include <winuser.h>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
POINT pt;
MonitorFromPoint(pt,2);
return a.exec();
}

我将其添加到 .pro 文件中

LIBS+= -luser32

结果是

g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"..\include\QtCore" -I"..\include" -I"..\include\ActiveQt" -I"tmp\moc\debug_shared" -I"..\testUser32" -I"." -I"..\mkspecs\win32-g++" -o tmp\obj\debug_shared\main.o ..\testUser32\main.cpp

mingw32-make[1]: Leaving directory `C:/Qt/2010.05/qt/testUser32-build-desktop'

mingw32-make: Leaving directory `C:/Qt/2010.05/qt/testUser32-build-desktop'

..\testUser32\main.cpp: In function 'int main(int, char**)':

..\testUser32\main.cpp:8: error: 'MonitorFromPoint' was not declared in this scope

mingw32-make[1]: *** [tmp/obj/debug_shared/main.o] Error 1

mingw32-make: *** [debug-all] Error 2

The process "C:/Qt/2010.05/mingw/bin/mingw32-make.exe" exited with code %2.
Error while building project testUser32 (target: Desktop)
When executing build step 'Make'

IRc 上有人说这是一个 mingw 问题,我应该使用 visualc 编译器。切换编译器需要时间,也许我会发现其他问题。我从 wingdi.h 导入函数,我没有遇到任何问题。我需要更好地解释这个问题,你是如何解决这个问题的,以及解决方案

附言我试图在多显示器系统中获取屏幕几何图形,QDesktopWidget 不起作用,请参阅主题 Capture multiple screens desktop image using Qt4

最佳答案

我找到了这个 http://www.mingw.org/wiki/Use_more_recent_defined_functions

我再次查看了函数定义的标题,我看到了这个

#if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0410)
WINUSERAPI HMONITOR WINAPI MonitorFromPoint(POINT,DWORD);

这意味着此方法不适用于旧版本的 Windows。解决方案是定义

#include <QtCore/QCoreApplication>
#define _WIN32_WINNT 0x0500
#include<windows.h>
#include <winuser.h>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
POINT pt;
MonitorFromPoint(pt,2);
return a.exec();
}

关于c++ - 在 Qt4 应用程序中使用 user32.dll 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3994201/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com