У меня есть простое приложение QWidgets только с одной кнопкой.Вот заголовок
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "Windows.h"
//#include "Winuser.h"
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
bool changed;
};
#endif // MAINWINDOW_H
И реализация
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
changed = false;
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
if (!changed){
// DEVMODE *dm = new DEVMODE();
// EnumDisplaySettings(NULL,ENUM_CURRENT_SETTINGS,dm);
// dm->dmPelsWidth = (unsigned long) 1024;
// dm->dmPelsHeight = (unsigned long) 768;
// ChangeDisplaySettings(dm,CDS_FULLSCREEN);
DEVMODE desiredMode = { 0 };
desiredMode.dmSize = sizeof(DEVMODE);
desiredMode.dmPelsWidth = 1024;
desiredMode.dmPelsHeight = 768;
desiredMode.dmFields = DM_PELSHEIGHT | DM_PELSWIDTH;
LONG res = ChangeDisplaySettings(&desiredMode,CDS_UPDATEREGISTRY | CDS_GLOBAL | CDS_RESET );
}
else{
ChangeDisplaySettings(NULL,0);
}
changed = !changed;
}
И мой файл .pro
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = ChangeResolution
TEMPLATE = app
# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
LIBS += -luser32
SOURCES += \
main.cpp \
mainwindow.cpp
HEADERS += \
mainwindow.h
FORMS += \
mainwindow.ui
Мне нужно разработать приложение, которое должно изменитьразрешение дисплея, только при отображении определенных изображений, до 1024x768 и затем возвращается к нормальному состоянию.Чтобы проверить, как это сделать, я пробую приведенный выше код, который я нашел здесь или SO.Однако при попытке скомпилировать приведенный выше код я получаю следующую ссылку:
mainwindow.obj:-1: error: LNK2019: unresolved external symbol __imp_ChangeDisplaySettingsW referenced in function "private: void __cdecl MainWindow::on_pushButton_clicked(void)" (?on_pushButton_clicked@MainWindow@@AEAAXXZ)
Из того, что я исследовал, похоже, что компилятор обнаружил, что библиотека не найдена, поэтому я добавилстрока LIBS для файла .pro, но ничего не изменилось.
Настройки моих проектов указывают, что я использую 64-битный компилятор Qt 5.10.0 MSVC2017.
Любая помощь о том, как получить этоскомпилировать?