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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt + Mfc  (Прочитано 6349 раз)
ElderOrb
Гость
« : Февраль 15, 2006, 16:40 »

Недавно я поднимал тему о сопряжении Qt и с библиотекой, писанной на Win API. Обнаружилось что у этой библиотеки есть довольно много уже написанных mfc-шных настроечных диалогов. После чего меня посетила интересная мысль, а не попробовать ли вызывать эти диалоги из mfc ? В туториалах к qtwinmigrate по шагам расписано как портировать mfc приложение под Qt. Я же не хочу портировать, я хочу чтобы из Qt-шного приложения была возможность использовать mfc-шные классы. Кто-нибудь занимался подобным?
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Февраль 15, 2006, 16:46 »

Я занимался.
Все работало вроде нормально.
Еще тут есть пример использования:
http://hardclub.donntu.edu.ua/projects/qt/articles/mfc-in-qt.html
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
ElderOrb
Гость
« Ответ #2 : Февраль 17, 2006, 11:30 »

Прочитал статью но так и не понял как из Qt-шной программы вызвать мфц-шный диалог.

Вот что пытаюсь делать я:
Код:

#include "qtmfc.h"

#include "afxwin.h"
#include "afxext.h"
#include "afxcmn.h"

#include "sapclassbasic.h"
#include "sapclassgui.h"
#include "browsedirdlg.h"

QtMfc::QtMfc(QWidget *parent, Qt::WFlags flags)
    : QMainWindow(parent, flags)
{
ui.setupUi(this);

CBrowseDirDlg d("C:\\");
d.DoModal();
}

QtMfc::~QtMfc()
{

}


При попытке запуска этого ещё до конструктора программы вылетает на файле winmain.cpp вот в этом месте:
Код:

// Perform specific initializations
if (!pThread->InitInstance())
{
if (pThread->m_pMainWnd != NULL)
{
TRACE(traceAppMsg, 0, "Warning: Destroying non-NULL m_pMainWnd\n");
pThread->m_pMainWnd->DestroyWindow();
}
nReturnCode = pThread->ExitInstance();
goto InitFailure;
}
nReturnCode = pThread->Run();


Что я неправильно делаю?[/quote]
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #3 : Февраль 17, 2006, 12:38 »

а почему ты его в КОНСТРУКТОРЕ вызываешь?
ИМХО это неправильно...
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
ElderOrb
Гость
« Ответ #4 : Февраль 17, 2006, 15:42 »

Проблема была не в этом, щас всё заработало. Помогла дока от QtSolutions, а если быть точнее examples/step4
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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