WxWidgets: Как инициализировать wxApp без использования макросов и без входа в основной цикл приложения?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 WxWidgets: Как инициализировать wxApp без использования макросов и без входа в основной цикл приложения?

Сообщение Anonymous »

Нам нужно написать модульные тесты для приложения wxWidgets, используя Google Test Framework.
Проблема в том, что wxWidgets использует макрос IMPLEMENT_APP(MyApp) для инициализации и входа в основной цикл приложения. Этот макрос создает несколько функций, включая int main(). Платформа тестирования Google также использует определения макросов для каждого теста.
Одна из проблем заключается в том, что невозможно вызвать макрос wxWidgets из тестового макроса, поскольку первый из них создает функции. Итак, мы обнаружили, что можем заменить макрос следующим кодом:

Код: Выделить всё

wxApp* pApp = new MyApp();
wxApp::SetInstance(pApp);
wxEntry(argc, argv);
Это хорошая замена, но вызов wxEntry() входит в исходный цикл приложения. Если мы не вызываем wxEntry(), некоторые части приложения все равно не инициализированы.
Вопрос в том, как инициализировать все необходимое для запуска wxApp, не запуская его фактически, чтобы мы могли выполнить его части для модульного тестирования?

Подробнее здесь: https://stackoverflow.com/questions/208 ... tering-the
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»