![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
minigo |
![]()
Сообщение
#1
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 6.7.2010 Пользователь №: 1862 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
Всем привет. Подскажите новичку, возможно ли сделать dll с Qt Gui и использовать её в MFC проекте ? Только мне не желательно грузить её через LoadLibrary, можно ли такую библиотеку прикрепить через lib файл ?
Заранее всем спасибо. |
|
|
![]() |
DIMEDROLL |
![]()
Сообщение
#2
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: ![]() ![]() ![]() |
подключить можно
только зачем? как планируется ее использовать? Qt GUI требует наличие обьекта QApplication |
|
|
minigo |
![]()
Сообщение
#3
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 6.7.2010 Пользователь №: 1862 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
подключить можно только зачем? как планируется ее использовать? Qt GUI требует наличие обьекта QApplication в dll планирую разместить диалоговые окна, но не хотел бы подгружать её через LoadLibrary. А прокатит такой вариант, в dll разместить QMyWidget, экспортировать его из dll, а в моём MFC приложении использовать QWinWidget для отображения ? |
|
|
minigo |
![]()
Сообщение
#4
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 6.7.2010 Пользователь №: 1862 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
У меня сейчас промежуточная проблема, я собрал MFCMigrationFramework, подключил всё к своему MFC проекту, добавил директивы QT_DLL, QT_GUI_LIB, QT_CORE_LIB, QT_THREAD_SUPPORT, QT_QTWINMIGRATE_IMPORT.
после добавляю код
и проект перестаёт собираться, ошибка линковки - MainFrm.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall QWinWidget::QWinWidget(class CWnd *,class QObject *,class QFlags<enum Qt::WindowType>)" (__imp_??0QWinWidget@@QAE@PAVCWnd@@PAVQObject@@V?$QFlags@W4WindowType@Qt@@@@@Z) не подскажите, в чём проблема ? У меня сейчас промежуточная проблема, я собрал MFCMigrationFramework, подключил всё к своему MFC проекту, добавил директивы QT_DLL, QT_GUI_LIB, QT_CORE_LIB, QT_THREAD_SUPPORT, QT_QTWINMIGRATE_IMPORT. после добавляю код
и проект перестаёт собираться, ошибка линковки - MainFrm.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall QWinWidget::QWinWidget(class CWnd *,class QObject *,class QFlags<enum Qt::WindowType>)" (__imp_??0QWinWidget@@QAE@PAVCWnd@@PAVQObject@@V?$QFlags@W4WindowType@Qt@@@@@Z) не подскажите, в чём проблема ? Исправил, ошибка глупая, надо было по HWND вызывать (либо пересобрать библиотеку) |
|
|
DIMEDROLL |
![]()
Сообщение
#5
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
minigo |
![]()
Сообщение
#6
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 6.7.2010 Пользователь №: 1862 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
Вообщем, день делов и в MFC проект прикрутил библиотеку Qt с диалоговыми окнами при помощи Qt/MFC Migration Framework. Всем спс !
|
|
|
Алексей1153 |
![]()
Сообщение
#7
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
minigo |
![]()
Сообщение
#8
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 6.7.2010 Пользователь №: 1862 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
и в MFC проект прикрутил библиотеку Qt с диалоговыми окнами а скажи честно, какой смысл всего этого ? ![]() У нас очень крупный проект на MFC, заморозить проект на полгода (а то и больше) чтобы перевести на Qt мы не можем, поэтому была выбрана стратегия перевода для начала всех библиотек проекта, это будет последовательно, позволит не задерживать релизы. На конечном этапе будет задача перевести основное приложение (т.е. основной модуль) на Qt, для этого момента наверно подгадаем месячишко, и наверно сделаем это для пущей безопасности в отдельном ветке SVN'а. вот поэтому и возникают подобные задачи. |
|
|
Алексей1153 |
![]()
Сообщение
#9
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Неправильный какой-то подход. Проблем будет больше, чем взять, выделить дополнительный час в день для параллельного написания проекта на Qt. Общий код, который без изменений можно использовать и там, и там, писать заново не придётся
Наверное, даже лучше сделать так: Берёте проект на MFC и отделяете код GUI и WinAPI от "чистого кода" (который без изменений и на Qt будет работать). Тогда останется тольго Gui написать, на остальное время и силы тратить не надо. А ещё и отлаживать рабочий код не надо. |
|
|
minigo |
![]()
Сообщение
#10
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 6.7.2010 Пользователь №: 1862 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
Неправильный какой-то подход. Проблем будет больше, чем взять, выделить дополнительный час в день для параллельного написания проекта на Qt. Общий код, который без изменений можно использовать и там, и там, писать заново не придётся безусловно, первое что мы делаем, это пишем новые компоненты на Qt, а не переписываем старые. Во вторых, часть нашего комплекса нам поставляется другой конторой в виде кучи библиотек, и наша задача сделать так, чтобы не зависеть только от этого поставщика, для этого у нас одновременно с написанием новых компонентов на Qt проходит переоценка архитектуры, переделываем вообщем и перетаскиваем некоторые старые компоненты под Qt В третьих, часа в день будет ооооочень мало, проекту уже фактически 3 года, и писали его очень интенсивно. Наверное, даже лучше сделать так: Берёте проект на MFC и отделяете код GUI и WinAPI от "чистого кода" (который без изменений и на Qt будет работать). Тогда останется тольго Gui написать, на остальное время и силы тратить не надо. А ещё и отлаживать рабочий код не надо. а ты писал на MFC когда нибудь ? особенно крупные проекты ? скажу честно, проект экспериментальный, местами сильно гуй переплёлся с основным кодом, и так легко на бегу отделить его от основного кода невозможно. Да и если честно, даже крупные проекты надо постоянно переписывать, дабы внедрять новые подходы и технологии. Поэтому переход на новую платформу планируется делать постепенно, реализовывая сначала новые компоненты на Qt, и постепенно перенося старые - естественно с модернизацией ! |
|
|
Litkevich Yuriy |
![]()
Сообщение
#11
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Алексей1153 |
![]()
Сообщение
#12
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
а ты писал на MFC когда нибудь ? особенно крупные проекты ? это моя основная работа последние лет пять местами сильно гуй переплёлся с основным кодом, и так легко на бегу отделить его от основного кода невозможно. ну да, так бывает, когда только начинают первые проекты делать - потом с опытом так уже перестают делать. Но, тем более такие места надо переделывать нормально - раздельно логику и гуи ![]() еслиб он был неправильный, под него не делали бы целый каркас (framwork) разработки. Совершенно нормальный подход. насколько я понимаю, этот фрейворк сделан для другой цели - подружить уже готовые классы Qt с кодом MFC. А тут задача другая - переписать MFC проект в Qt проект Сообщение отредактировал Алексей1153 - 8.7.2010, 17:32 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#13
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
насколько я понимаю, этот фрейворк сделан для другой цели - подружить уже готовые классы Qt с кодом MFC. А тут задача другая - переписать MFC проект в Qt проект Цитата Qt/MFC Migration Framework
The Qt/MFC Migration Framework tool assists in the migration of existing Win32 or MFC applications to the Qt toolkit. |
|
|
Алексей1153 |
![]()
Сообщение
#14
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Хм. Прикольно
|
|
|
minigo |
![]()
Сообщение
#15
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 6.7.2010 Пользователь №: 1862 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
Хм. Прикольно У нас ещё всё усугубляется тем, что темпы разработки не уменьшаются, а только увеличиваются. Есть ещё одна мысля, из части комплекса, который будет написан на Qt сделать некоторого рода компонент, который могут использовать и другие разработчики. Вобщем планов и мыслей громадьё ![]() |
|
|
Алексей1153 |
![]()
Сообщение
#16
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 26.6.2025, 17:19 |