![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
ssdmt |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 9.11.2009 Пользователь №: 1214 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Всем знатокам Qt однозначно привет!!! ))
Входные данные: ------------------------- первое - у меня есть проект dll библотеки в Qt. второе - в этой dll экспортируется ф-ия extern "С" CMyClass* CreateDynamicMyClass(); ,которая динамически создаёт класс CMyClass третье - этот класс(CMyClass) наследуется от QTcpServer и имеет СИГНАЛЫ и СЛОТЫ, т.е. макрос Q_OBJECT ;) четвёртое - если filename.exe(тестовый проект без QCoreApplication - ПОЛНОСТЬ ГОЛЫЙ только LoadLibrary и GetProcAddress, console applic.) компилирую gcc, функция CreateDynamicMyClass() возвращает объект CMyClass и из него отрабатывает метод start() пример: CMyClass* class = dll->CreateDynamicMyClass(); // думаю мысль понятна :) class->start(); // ВСЁ ОТРАБАТЫВАЕТ КОРРЕКТНО!!! пятое - если filename.exe скомпилировать в Visual Studio 2008(так же полность "голый"), то всё - при вызове class->start() .. start имеет адресс по которому нельзя обратиться - код ошибки 5! .. ВОПРОСЫ: - кто нибудь сталкивался с такой ситуацией? почему таблица виртальных функций слетает?? в Visual Studio? P.S. не предлагать компилить в gcc, так как проект сам в Visual Studio и собрать его с помощью gcc просто нереально :( ... идея моя в том, чтобы сделать dll-qt библиотеку в которая даёт класс для работы с сокетами! для VisualStudio проекта! .. вот кто поможет на сотыч кину 200 руб ;) |
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
обычно нельзя смешивать программы/dll Qt собраные разными компиляторами.
|
|
|
ssdmt |
![]()
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 9.11.2009 Пользователь №: 1214 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 15.3.2025, 18:18 |