lnk2019 qt 5.4 msvc 2013 - błąd podczas kompilacji

0

Witam, znalazłem na internecie kod programu, który robi screen ekranu, kod działa pod Visual Studio 2013 Ultimate, ale gdy chcę go uruchomić pod Qt 5.4 wyskakują błędy LNK2019.

Poniżej kod programu :
mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <stdio.h>
#include <Windows.h>
#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

main.cpp

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

mainwindow.ui

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    int x1, y1, x2, y2, w, h;

    x1 = GetSystemMetrics(SM_XVIRTUALSCREEN);
    y1 = GetSystemMetrics(SM_YVIRTUALSCREEN);
    x2 = GetSystemMetrics(SM_CXVIRTUALSCREEN);
    y2 = GetSystemMetrics(SM_CYVIRTUALSCREEN);

    w = x2 - x1;
    h = y2 - y1;

    HDC hScreen = GetDC(NULL);
    HDC hDC = CreateCompatibleDC(hScreen);
    HBITMAP hBitmap = CreateCompatibleBitmap(hScreen, w, h);
    HGDIOBJ old_obj = SelectObject(hDC, hBitmap);
    BOOL bRet = BitBlt(hDC, 0, 0, w, h, hScreen, x1, y1, SRCCOPY);

    OpenClipboard(NULL);
    EmptyClipboard();
    SetClipboardData(CF_BITMAP, hBitmap);
    CloseClipboard();

    SelectObject(hDC, old_obj);
    DeleteDC(hDC);
    ReleaseDC(NULL, hScreen);
    DeleteObject(hBitmap);
}

MainWindow::~MainWindow()
{
    delete ui;
}

nienazwany.pro

#-------------------------------------------------
#
# Project created by QtCreator 2015-04-25T20:33:58
#
#-------------------------------------------------

QT       += core gui
QT += widgets

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = nienazwany
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

Komunikaty kompilatora :

20:35:28: Uruchamianie kroków budowania dla projektu nienazwany...
20:35:28: Konfiguracja niezmieniona, krok qmake opuszczony.
20:35:28: Uruchamianie "C:\Qt\Qt5.4.1\Tools\QtCreator\bin\jom.exe" 
	C:\Qt\Qt5.4.1\Tools\QtCreator\bin\jom.exe -f Makefile.Release
	cl -c -nologo -Zm200 -Zc:wchar_t -FS -O2 -MD -Zc:strictStrings -GR -W3 -w34100 -w34189 -EHsc -DUNICODE -DWIN32 -DWIN64 -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DNDEBUG -I"..\nienazwany" -I"." -I"..\..\..\..\Qt\Qt5.4.1\5.4\msvc2013_64\include" -I"..\..\..\..\Qt\Qt5.4.1\5.4\msvc2013_64\include\QtWidgets" -I"..\..\..\..\Qt\Qt5.4.1\5.4\msvc2013_64\include\QtGui" -I"..\..\..\..\Qt\Qt5.4.1\5.4\msvc2013_64\include\QtANGLE" -I"..\..\..\..\Qt\Qt5.4.1\5.4\msvc2013_64\include\QtCore" -I"release" -I"." -I"..\..\..\..\Qt\Qt5.4.1\5.4\msvc2013_64\mkspecs\win32-msvc2013" -Forelease\ @C:\Users\Marcin\AppData\Local\Temp\mainwindow.obj.3268.15.jom
mainwindow.cpp
..\nienazwany\mainwindow.cpp(24) : warning C4189: 'bRet' : local variable is initialized but not referenced
	link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:release\nienazwany.exe @C:\Users\Marcin\AppData\Local\Temp\nienazwany.exe.3268.1468.jom
mainwindow.obj : error LNK2019: unresolved external symbol __imp_BitBlt referenced in function "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
mainwindow.obj : error LNK2019: unresolved external symbol __imp_CreateCompatibleBitmap referenced in function "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
mainwindow.obj : error LNK2019: unresolved external symbol __imp_CreateCompatibleDC referenced in function "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
mainwindow.obj : error LNK2019: unresolved external symbol __imp_DeleteDC referenced in function "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
mainwindow.obj : error LNK2019: unresolved external symbol __imp_DeleteObject referenced in function "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
mainwindow.obj : error LNK2019: unresolved external symbol __imp_SelectObject referenced in function "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
mainwindow.obj : error LNK2019: unresolved external symbol __imp_OpenClipboard referenced in function "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
mainwindow.obj : error LNK2019: unresolved external symbol __imp_CloseClipboard referenced in function "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
mainwindow.obj : error LNK2019: unresolved external symbol __imp_SetClipboardData referenced in function "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
mainwindow.obj : error LNK2019: unresolved external symbol __imp_EmptyClipboard referenced in function "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
mainwindow.obj : error LNK2019: unresolved external symbol __imp_GetSystemMetrics referenced in function "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
mainwindow.obj : error LNK2019: unresolved external symbol __imp_GetDC referenced in function "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
mainwindow.obj : error LNK2019: unresolved external symbol __imp_ReleaseDC referenced in function "public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)
release\nienazwany.exe : fatal error LNK1120: 13 unresolved externals
jom: C:\Users\Marcin\Documents\build-nienazwany-Desktop_Qt_5_4_1_MSVC2013_64bit-Release\Makefile.Release [release\nienazwany.exe] Error 1120
jom: C:\Users\Marcin\Documents\build-nienazwany-Desktop_Qt_5_4_1_MSVC2013_64bit-Release\Makefile [release] Error 2
20:35:30: Proces "C:\Qt\Qt5.4.1\Tools\QtCreator\bin\jom.exe" zakończył się kodem wyjściowym 2.
Błąd budowania / instalowania projektu nienazwany (zestaw narzędzi: Desktop Qt 5.4.1 MSVC2013 64bit)
Podczas wykonywania kroku "Make"
20:35:30: Czas trwania: 00:02.
0

Trochę się namęczyłem, ale w końcu znalazłem rozwiązanie. Wystarczyło w pliku mainwindow.h dodać :

#pragma comment(lib, "gdi32.lib")
#pragma comment(lib, "User32.lib")

1 użytkowników online, w tym zalogowanych: 0, gości: 1