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.