Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > QMessageBox - ложит приложение


Автор: Alca 28.3.2013, 00:27
Это так и должно быть?
Код

QMessageBox::information(NULL, "", "");

QApplication apApp(argc, argv);


Код

Error - RtlWerpReportException failed with status code :-1073741823. Will try to launch the process directly

Автор: 586 28.3.2013, 00:56
QApplication должен первым создаваться.

Автор: Alca 28.3.2013, 01:02
А вот к примеру мне надо показать меседж бокс до QApplication?
Как быть в этом случае?

Автор: 586 28.3.2013, 01:13
Из документации:
Цитата(http://qt-project.org/doc/qt-4.8/qapplication.html)
QApplication::QApplication ( int & argc, char ** argv )
...
This application object must be constructed before any paint devices (including widgets, pixmaps, bitmaps etc.).

QMessageBox это тоже виджет.

Цитата(Alca @  28.3.2013,  02:02 Найти цитируемый пост)
А вот к примеру мне надо показать меседж бокс до QApplication?
Как быть в этом случае? 

Можно через API. Но я не вижу ничего плохого в том, чтобы поместить создание QApplication в начало.
Добавлено:
И если API'шный MessageBox не будет появляться, добавь перед ним InitCommonControls().

Автор: Alca 28.3.2013, 01:42
Цитата

Но я не вижу ничего плохого в том, чтобы поместить создание QApplication в начало.

Да я тоже не видел, пока не началось крашиться приложение (как раз при создании QApplication), 
при осутствии Qt-ных плагинов на чистой машине (без установленного Qt),
которые необходимы для работы.

Код

Содержимое папки D:\Libs\Qt\5.0.1_mingw_4.7.2_x32\5.0.1\mingw47_32\plugins        
                                                                                  
2.02.2013  13:05    <DIR>          .                                              
2.02.2013  13:05    <DIR>          ..                                             
4.02.2013  23:55    <DIR>          accessible                                     
4.02.2013  23:55    <DIR>          bearer                                         
4.02.2013  23:55    <DIR>          designer                                       
4.02.2013  23:56    <DIR>          iconengines                                    
4.02.2013  23:56    <DIR>          imageformats                                   
4.02.2013  23:55    <DIR>          mediaservice                                   
4.02.2013  23:55    <DIR>          platforms                                      
4.02.2013  23:55    <DIR>          playlistformats                                
4.02.2013  23:55    <DIR>          printsupport                                   
4.02.2013  23:55    <DIR>          qmltooling                                     
4.02.2013  23:55    <DIR>          sqldrivers                                     
              0 файлов              0 байт                                        
             13 папок  51 865 432 064 байт свободно                               


Автор: 586 28.3.2013, 01:59
Вроде не должно...

Напиши вот такую маленькую програмку, и запусти на той машине:
Код
int main(int argc, char *argv[])
{
    QApplication apApp(argc, argv);
    QMessageBox::information(NULL, "", "");
    return 0;
}

Автор: Alca 28.3.2013, 02:11
Код

C:\XXXDb>./XXXDb.exe                                                          
Failed to load platform plugin "windows". Available platforms are:            
                                                                              
                                                                              
This application has requested the Runtime to terminate it in an unusual way. 
Please contact the application's support team for more information.           

Автор: Alca 29.3.2013, 14:31
Я так понял, что без велосипеда не обойтись.
https://bitbucket.org/skynowa/xlib/src/9ddbf9a7cf72cfa6596653f6b50e259555d7cf39/Project/Include/xLib/Gui/Dialogs?at=develop

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)