Russian Qt Forum
Ноябрь 22, 2024, 07:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: GetObject(A) и.т.п.  (Прочитано 3788 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Июнь 23, 2014, 10:48 »

Добрый день

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

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

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

[/off]Ну почему на этой платформе всегда все через жопу?  Плачущий Плачущий Плачущий
Записан
Bepec
Гость
« Ответ #1 : Июнь 23, 2014, 11:22 »

Ни разу не встречался с такой проблемой, надо посмотреть - самому интересно.
Так то это сделано для обратной совместимости винды.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Июнь 23, 2014, 11:54 »

Выкрутился так
Код
C++ (Qt)
#include <QGLWidget>
#undef GetObject
#undef CreateWindow
и.т.д
А как "более грамотно"?

Спасибо
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Июнь 23, 2014, 12:16 »

А как "более грамотно"?
А куда ещё грамотнее коли WinAPI так гадит.
Записан

Qt 5.11/4.8.7 (X11/Win)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Июнь 23, 2014, 12:39 »

А куда ещё грамотнее коли WinAPI так гадит.
Не только. Если бы QGLWidget  был выделен отдельным .h файлом - все было бы норм, в хедере зависимость от платформы не нужна. Но они поленились и слили все в qgl.h

Qt 5.2
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.082 секунд. Запросов: 22.