В настоящее время я оцениваю варианты переноса существующей неуправляемой кодовой базы C ++ для использования нового инструментария GUI. QT и wxWidgets кажутся подходящими, поскольку они имеют сильную объектную модель. Приложение предназначено только для компьютеров Windows, но было бы неплохо иметь независимое от платформы решение.
В будущем этот код, возможно, придется преобразовать в DLL, ограниченную однопотоковой квартирой (STA). Это неизбежная проблема для любого из этих наборов инструментов? Есть ли другие инструменты, которые я должен рассмотреть?
Я знаю, что DLL будет загружена приложением, действующим как многопоточная квартира (MTA). К сожалению, это приложение может также загружать другие библиотеки DLL, которые могут иметь свои собственные графические интерфейсы, которые могут использовать другие или аналогичные наборы инструментов, которые не находятся под моим контролем. Подходит ли какой-либо из этих наборов инструментов под эти ограничения? Я понимаю из других постов, что запуск графического интерфейса QT из DLL возможно, но не очень гибко. Тем не менее, я не знаю, верно ли то же самое для wxWidgets или ограничение STA оказывает какое-либо влияние на любой инструментарий.
wxWidgets не заботится о квартире, в которую он загружен. Единственные COM-интерфейсы, которые он использует, это оболочки (например, IFileDialog
) который должен работать в любой квартире. Так что я просто не могу представить, чтобы у меня были какие-то новые проблемы из-за этого. Но, может быть, у меня просто недостаточно хорошего воображения, конечно …