Какой инструментарий я должен использовать, чтобы создать легко редактируемый и современно выглядящий графический интерфейс для существующего кода c ?

#c #user-interface

#c #пользовательский интерфейс #c

Вопрос:

Я начинаю новый небольшой проект, в котором отсутствует графический интерфейс и немного манипулирования данными, но сложные и требующие критики по времени части кода существуют и написаны на c / c . Ранее я использовал win32 api, MFC для создания графики, но я хочу что-то более современное, более новое и что-то, что немного проще в обслуживании и обновлении. Вероятно, мне следует упомянуть, что я также хочу попробовать и узнать что-то новое…

Несколько лет назад я попытался интегрировать компоненты c в c # с помощью pinvoke. Получилось довольно сумбурно. Но это было давно…

Какие-нибудь советы? Что я должен использовать?

Предварительные требования: Windows (XP или 7) и VS 2005, 2008 или 2010. Eclipse также должен работать нормально.

Ответ №1:

Вы могли бы попробовать QT или wxWidgets, которые оба являются хорошими наборами инструментов для C GUI. Если у вас не так много точек входа в коде c , вы могли бы обернуть их в несколько классов C # и использовать WPF или windows form (.NET 4 или 2). В любом случае для этого требуется «смешивать управляемый и неуправляемый код».

Комментарии:

1. да, и qt, и wxWidgets имеют открытый исходный код. я предлагаю вам QT: у него лицензия LGPL, и он действительно красивый и кроссплатформенный

2. Для C # вам нужна Windows, но помимо этого. NET и Visual Studio Express бесплатны.

3. Бюджет рассчитан на дополнительное программное обеспечение. У меня уже есть версии 2005, 2008 и 2010.

4. Этот ответ содержит основные варианты. Если вы уже разрабатываете в Visual Studio, C # может быть хорошим вариантом. Я часто использую Interop с неуправляемой c / c dll, когда мне нужно, и сохраняю остальное в C #. Это работает действительно хорошо, и разработка идет быстро, по крайней мере, для меня.

Ответ №2:

Сам давно не пробовал, но, насколько я слышал, интеграция .NET с managed / native в наши дни довольно хороша:

  • не требует дополнительных доработок или зависимостей; когда проект находится в Visual Studio, вы готовы к запуску,
  • довольно простое кодирование графического интерфейса,
  • простой в обслуживании,
  • любой язык на ваш выбор для графического интерфейса: C #, F #, J #, управляемый C и другие (пригодится, когда вы захотите попробовать что-то новое).

Ответ №3:

Я бы рекомендовал интеграцию между C # и C с использованием C / CLI, иначе управляемого C . Основным проектом является C / CLI, использующий классы C # для визуального оформления графического интерфейса. Не требуется никакого pinvoke. Весь код (графический интерфейс и часть библиотеки) может даже содержаться в одном исполняемом файле (но зависит от наличия .Net).

Если бюджет не был препятствием (в данном случае около 150 $) Я бы также упомянул C Builder — визуальный дизайн графического интерфейса и собственный исполняемый файл (no.Сетевая зависимость)

Комментарии:

1. Какова производительность управляемого c / CLI по сравнению со стандартным c ? Медленно? то же самое?

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

3. Как вы соединяете c # с c ? Я не могу найти никакого способа, кроме использования DllImport и тому подобного. Становится очень медленным…

4. Создайте новый проект как один из Visual C / CLR group. После этого вы можете добавлять ссылки на библиотеки DLL с кодом C # обычным способом. Intellisense будет знать синтаксические оболочки C вокруг импортированных классов C #. Аналогичным образом вы можете добавить ссылки на библиотеки классов C / CLR в проекте C #.

Ответ №4:

Вы пишете графический интерфейс с использованием QT и ссылаетесь на существующий код C .