WinForms или WPF или QT для Windows GUI с C/C++ как бэкенд

Как уже указано, отражение является способом пойти. Если Вы собираетесь назвать это часто, я высоко предлагаю кэшировать результаты, поскольку отражение, особенно перечисляя через каждый класс, может быть довольно медленным.

Это - отрывок моего кода, который пробегает все типы во всех загруженных блоках:

// this is making the assumption that all assemblies we need are already loaded.
foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies()) 
{
    foreach (Type type in assembly.GetTypes())
    {
        var attribs = type.GetCustomAttributes(typeof(MyCustomAttribute), false);
        if (attribs != null && attribs.Length > 0)
        {
            // add to a cache.
        }
    }
}
8
задан bastibe 28 August 2009 в 10:32
поделиться

3 ответа

Я думаю, что самым большим недостатком использования WPF или WinForms является то, что вам придется программировать на двух языках программирования, что является большими накладными расходами на логистику.

Я видел аргументы такого типа. раньше: используйте C или C ++ для низкого уровня, что-то еще для высокого уровня. В этом случае Qt / C ++ имеет такой же высокий уровень, как и WPF / WinForms, с преимуществом очень простой интеграции пользовательского интерфейса с другим кодом C ++.

Для спектрограмм и других графиков см. Qwt .

] PS: WPF не так популярен в Windows, на самом деле рынок довольно фрагментирован, и WPF - один из менее используемых наборов инструментов GUI. Большая часть кода использует MFC, WTL, Delphi, Win32 и т. Д.

6
ответ дан 5 December 2019 в 15:25
поделиться

У меня нет опыта работы с QT, но я могу сказать, что WPF хорош, но не так хорош для приложений с высокой загрузкой процессора, к тому же вы не сможете легко напрямую интегрировать свой c / c ++ с WPF.

Потребуется огромное обучение, и вам придется писать COM-интерфейсы для взаимодействия с C # / WPF и вашим собственным кодом. или Visual C ++ .Net CLI, что довольно сложно и доступно меньше руководств.

Но проблема в том, что вы не получите никакой хорошей поддержки, потому что многие люди используют только C #, приложения для баз данных только с WPF / WinForms. Наилучший способ сделать это - написать COM-библиотеки DLL для интеграции с WPF, но это будет сложно.

Вместо этого в MFC доступны различные инструменты, а также доступно множество других коммерческих библиотек для написания хорошего пользовательского интерфейса. в C ++ MFC,

3
ответ дан 5 December 2019 в 15:25
поделиться

WPF свяжет вас с Windows, но не с каким-либо конкретным языком. Вы можете писать приложения WPF на C #, VB.NET, Managed C ++ или на любом другом языке .NET.

Winforms аналогично привязан к Windows, но вы можете написать свое приложение таким образом, чтобы оно также работало на

1138244] Mono , поэтому является кроссплатформенным. Однако Winforms - гораздо менее мощный инструментарий, когда дело доходит до сложных визуализаций.

Взаимодействие между .NET и собственными приложениями очень сильное, но оно наверняка доставит вам хотя бы небольшую боль. С другой стороны, реализация интерфейса в собственной среде может вызвать у вас еще больше проблем.

Если вы довольны тем, что ваш графический интерфейс привязан к Windows и .NET, WPF - лучший вариант для приложений с высокой степенью визуализации. Если вам не нужна зависимость от .NET или Windows,

2
ответ дан 5 December 2019 в 15:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: