Я пишу небольшое приложение, которое требует нескольких списков, кнопок, текстовых полей. Он будет связан с Boost, MySQL и т. Д. C++ static libs. Для проекта требуются функции win32. Я считаю, что Winforms будет в порядке (MFC и CodeJock требуют слишком много времени)..NET GUI - C# vs C++/CLI
Так что C++/CLI кажется идеальным для работы. Просто используйте стандартный C++ вместе с графическим интерфейсом. Затем я просматриваю потоки, предлагая вам написать свой графический интерфейс на C#. Затем используйте p/Invoke (медленный) или интерфейс C++/CLI для стандартных DLL на C++.
Пример: http://social.msdn.microsoft.com/Forums/en-US/clr/thread/6ae877ac-07b4-4d26-8582-de475ee9a5cb
Почему? Какое преимущество в использовании C# для вашего winforms GUI вместо C++/CLI (они выглядят одинаково, команды одинаковы). Какой недостаток заключается в использовании исполняемого файла C++/CLI вместо стандартного исполняемого файла C++. Я могу понять, была ли кросс-платформенная совместимость проблемой, но тогда вы могли просто не использовать управляемые функции (кроме графического интерфейса).
Я не понимаю, почему вы использовали бы C#, а затем зайдите так далеко, чтобы разделить его с «DLL-движком». Если, конечно, «DLL-движок» не использовался и для других приложений.
Благодаря
P/Invoke не работает медленно, если он используется правильно. Наше приложение содержит около 30 тыс. Строк C# и 200k + из C++ с P/Invoke и управляет интерактивными фреймами с анимацией/и т. Д. Вам просто нужно убедиться, что ваши интерфейсы между C# и DLL (-ами) являются чистыми и минимальными. –
@RonWarholic Я не так хорошо знаком с P/Invoke, но разве не утомительно полностью переписать объявления функций 200k строк кода? – MasterMastic
Если вы держите свой открытый API чистым и плотным, там не так много переписывания. Есть тысячи функций в библиотеке, но только 80 или около того подвергаются стороне C#. –