在QT中调用windows api的问题
我在QT的文件里include<windows.h>
在原文件里
// 获取一个可供画图的DC,我这里就直接用桌面算了
HDC hdc = GetWindowDC( GetDesktopWindow() );
// 创建红色1像素宽度的实线画笔
HPEN hpen1 = CreatePen( PS_SOLID, 1, RGB(255,0,0) );
编译通过可是连接报错
GetWindowDC可以通过可是CreatePen不能通过。
[解决办法]
debug/mainwindow.o: In function `MainWindow':
C:\Documents and Settings\Administrator\My Documents\textApi/mainwindow.cpp:13: undefined reference to `CreatePen@12'
C:\Documents and Settings\Administrator\My Documents\textApi/mainwindow.cpp:13: undefined reference to `CreatePen@12'
你用的是Qt的库和头文件。现在要加入Window的调用,光有头文件是不够的,还需要库。
查看MSDN或者网上百度,可以知道GetWindowDC需要的是:
Windows NT/2000: Requires Windows NT 3.1 or later.
Windows 95/98: Requires Windows 95 or later.
Header: Declared in Winuser.h; include Windows.h.
Library: Use User32.lib.
CreatePen需要的是:
Requirements
Windows NT/2000: Requires Windows NT 3.1 or later.
Windows 95/98: Requires Windows 95 or later.
Header: Declared in Wingdi.h; include Windows.h.
Library: Use Gdi32.lib.
上面的两个库在VC或者VS安装后能找到。
例如默认的VC会带着。在C:\Program Files\Microsoft Visual Studio\VC98\Lib
要在工程里把这些库加进去。
比如将库拷贝到C:\下,在.pro文件中加入
LIBS += $$quote(C:/Gdi32.lib)
然后再编译试试
[解决办法]