Russian Qt Forum

Компиляторы и платформы => Windows => Тема начата: Igors от Июнь 23, 2014, 10:48



Название: GetObject(A) и.т.п.
Отправлено: Igors от Июнь 23, 2014, 10:48
Добрый день

Замещаю нативный код на QGLWidget но вот беда: он тянет <windows.h> и сыпятся ошибки, напр
Код
C++ (Qt)
void MyClass::GetObject( void );

Но <windows.h> включен и вместо GetObject подставляется
Цитировать
#define GetObject  GetObjectA

Исправлять все свои имена не только долго, но и безыдейно - MyClass задумывался кросс-платформенным, без всякого WinAPI. А как-то "локализовать" использование QGLWidget не удается - от него нужно наследоваться.

[/off]Ну почему на этой платформе всегда все через жопу?  :'( :'( :'(


Название: Re: GetObject(A) и.т.п.
Отправлено: Bepec от Июнь 23, 2014, 11:22
Ни разу не встречался с такой проблемой, надо посмотреть - самому интересно.
Так то это сделано для обратной совместимости винды.


Название: Re: GetObject(A) и.т.п.
Отправлено: Igors от Июнь 23, 2014, 11:54
Выкрутился так
Код
C++ (Qt)
#include <QGLWidget>
#undef GetObject
#undef CreateWindow
и.т.д
А как "более грамотно"?

Спасибо


Название: Re: GetObject(A) и.т.п.
Отправлено: GreatSnake от Июнь 23, 2014, 12:16
А как "более грамотно"?
А куда ещё грамотнее коли WinAPI так гадит.


Название: Re: GetObject(A) и.т.п.
Отправлено: Igors от Июнь 23, 2014, 12:39
А куда ещё грамотнее коли WinAPI так гадит.
Не только. Если бы QGLWidget  был выделен отдельным .h файлом - все было бы норм, в хедере зависимость от платформы не нужна. Но они поленились и слили все в qgl.h

Qt 5.2