Russian Qt Forum

Qt => Вопросы новичков => Тема начата: hanabad от Июль 04, 2012, 14:33



Название: Вызов WinAPI функций
Отправлено: hanabad от Июль 04, 2012, 14:33
Привет форумчане. Не подскажите как в Qt вызываются WinAPI функции и как вообще
нужно импортировать dll-ки. Я недавно програмлю на С++ (пытаюсь слезть с NET).
Если можно с кодом, например в C# было так:
Код:
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

[DllImport("user32.dll")]
static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);

[DllImport("user32.dll")]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 msg, int len, int st);
//...
var inp = FindWindow("Notepad++", null);
inp = FindWindowEx(inp, IntPtr.Zero, "Scintilla", null);
SendMessage(inp, 0x102, 'H', 0);
а как это сделать в Qt?


Название: Re: Вызов WinAPI функций
Отправлено: V1KT0P от Июль 04, 2012, 14:36
Под MinGW достаточно написать:
Цитировать
#include <windows.h>
И все, можно использовать все апишные функции.


Название: Re: Вызов WinAPI функций
Отправлено: hanabad от Июль 04, 2012, 14:52
А с Qt libraries 4.8.2 for Windows (VS 2008, 234 MB) как быть? а то пишет:
Код:
main.obj:-1: ошибка: LNK2019: ссылка на неразрешенный внешний символ __imp__FindWindowExW@16 в функции _main


Название: Re: Вызов WinAPI функций
Отправлено: CJ1 от Июль 04, 2012, 15:26
#pragma comment(lib,"kernel32.lib");
#pragma comment(lib,"user32.lib");
#pragma comment(lib,"gdi32.lib");
#pragma comment(lib,"winspool.lib");
#pragma comment(lib,"comdlg32.lib");


Название: Re: Вызов WinAPI функций
Отправлено: hanabad от Июль 04, 2012, 15:47
CJ1, спасибо работает! Только пишет предупреждения:
Код:
E:\SkyDrive\Programming\QtProjects\Search\main.cpp:47: предупреждение: C4081: требуется "newline"; обнаружен ";""


Название: Re: Вызов WinAPI функций
Отправлено: CJ1 от Июль 04, 2012, 15:49
Ой, блин, убери от всех #pragma comment(lib,""); точку с запятой
#pragma comment(lib,"")



Название: Re: Вызов WinAPI функций
Отправлено: hanabad от Июль 04, 2012, 15:54
Ой, блин, убери от всех #pragma comment(lib,""); точку с запятой
#pragma comment(lib,"")
Да, так лучше(не действует на нервы ;D), еще раз СПАСИБО!