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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: проблемы с компиляцией программы  (Прочитано 12753 раз)
Dancing_on_water
Гость
« Ответ #15 : Декабрь 29, 2012, 19:47 »

Ага, но сколь я понял по вот этой ссылке соглашение о вызове разные компиляторы понимают по разному. Я прав?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #16 : Декабрь 29, 2012, 20:06 »

Ага, но сколь я понял по вот этой ссылке соглашение о вызове разные компиляторы понимают по разному. Я прав?
Эта ссылка про одно из соглашений - thiscall. Я не проверял, но пока нет повода для сомнений. Улыбающийся
Записан
Dancing_on_water
Гость
« Ответ #17 : Декабрь 29, 2012, 20:34 »

Ну с stdcall у меня тоже все работает. (Но ведь в класс это не запихнешь?)
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #18 : Декабрь 29, 2012, 20:56 »

Ну с stdcall у меня тоже все работает. (Но ведь в класс это не запихнешь?)
Да.
Если будет патовая ситуация (есть библиотека собранная msvc и ее нужно использовать в проекте с gcc), то можно попробовать выкрутиться (и то будут проблемы с теми же исключениями). А в обычной жизни проще все собирать одним компилятором.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #19 : Декабрь 30, 2012, 11:06 »

Если имеется ввиду внутренняя структура объектов классов, то здесь тоже все будет нормально. Главное не создавать объект конструктором из одной библиотек, а для работы использовать методы из другой. Ну до такого вряд-ли кто-то додумается.
По-моему наоборот, трудно "не додуматься". Пример
Код
C++ (Qt)
void Scan( const std::vector<int> & vec )   // эта ф-ция статик либы откомпилированной MSVC debug
..
Scan(vec);  // а вызывающее приложение откомпилировано MSVC release
 
Результат: краш в потрохах <vector>. Почему дают слинковать - хз, логика MS недоступна моему пониманию Плачущий  
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #20 : Декабрь 30, 2012, 11:14 »

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

Сообщений: 11445


Просмотр профиля
« Ответ #21 : Декабрь 30, 2012, 11:59 »

Ну это проблемы конкретно MSVC, для них это нормально. Улыбающийся
То да, но мы не можем надеяться что некий "компилятор X" создаст vector который устроит MSVC - ведь оно само его создает с трудом Улыбающийся Напр если мы компилили либу Scan чем-то другим - результат crash (даже если как-то уговорить линкер)
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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