GUI MFC в главном фрейме и другие библиотеки DLL, которые также являются GUI - PullRequest
0 голосов
/ 24 октября 2010

У меня есть приложение MFC, в котором графический интерфейс пользователя реализован как часть исполняемого кода (архитектура view-doc и т. Д.). Мое приложение использует некоторые библиотеки DLL, которые я использую.

Теперь мне нужно написать другую библиотеку DLL, которую язнаю, что он также должен иметь графический интерфейс.

Мой вопрос / неопределенность заключается в том, должен ли я реализовывать графический интерфейс как часть основного приложения (основной графический интерфейс) и подключаться между ними ИЛИ я должен реализовывать графический интерфейс как частьновая DLL и просто сделать точку входа в основной графический интерфейс?В обоих случаях мне ясно, что у меня должен быть интерфейсный класс.

В случае, если я реализую GUI как часть DLL, мне ясно, что GUI должен содержать указатель на класс интерфейса, нокак класс интерфейса должен взаимодействовать с GUI (например, уведомлять GUI о завершении длительной операции или предоставлять промежуточные отчеты GUI об операции? 1), используя указатель от Interface к GUI?2) использование цикла сообщений с обратными вызовами?3) другие варианты ???

Большое спасибо

1 Ответ

2 голосов
/ 24 октября 2010

Как правило, MFC + GUI в DLL = много ненужных проблем.По крайней мере, насколько я помню, десять с лишним лет назад.Это связано с тем, что MFC в стиле Microsoft «поддерживает» то или иное, что, как предполагал кто-то в Microsoft, может быть проблемой, поэтому MFC различает разные типы DLL-файлов и их состояния и тому подобное, в частности, в отношении ресурсов.

Итак, я бы сказал, что для MFC, если это вообще возможно, сохранить содержимое GUI в основной программе.

Это также связано с распределением обязанностей.Разделяя обязанности, вы получаете более чистый дизайн, который легче поддерживать.Поместите знание вещей, где это необходимо для обязанностей.

Приветствия & hth.,

...