Каков наилучший способ написать элемент управления в C ++, чтобы его могли использовать программы на C ++ и C #? - PullRequest
0 голосов
/ 04 февраля 2012

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

Я посмотрел на MFC Active X, ATL Active X и .NET C ++.Все они кажутся излишне сложными.Мне бы очень хотелось избегать .NET C ++, потому что включать .NET в программу на C ++ просто бессмысленно.

Также, похоже, нет хороших руководств по написанию активных элементов управления X, которые не являются десятилетиями.old.

Ребята, знаете ли вы какие-нибудь приличные учебники по ActiveX, предназначенные для Visual Studio 2008?

Есть ли какой-нибудь другой способ, которым я могу достичь своих целей без необходимости написания COM-компонента.Могу ли я просто написать нормальный элемент управления на C ++ и вставить его в DLL и сделать его пригодным для использования программами C ++ и C #?Меня не волнует совместимость с дизайнерами графического интерфейса.

Спасибо!

1 Ответ

4 голосов
/ 04 февраля 2012

Мой оригинальный ответ был следующим. Я оставлю это здесь для людей в подобных ситуациях.

Если C # медленнее, чем C ++ для чего-либо, кроме сложной математики, вы делаете что-то не так. Скорость должна быть примерно одинаковой, если не быстрее.

C ++ по своей сути означает, что создание GUI будет сопряжено со множеством сложностей, изобретением колеса и старой документацией. Нельзя избежать этого.

Тот факт, что «использование .NET в программе на C ++ кажется бессмысленным», указывает на то, что вы очень мало знаете о технологиях, с которыми вы работаете.

Мой ответ: придерживайтесь C #, или вы будете над головой. Сосредоточьтесь на том, чтобы оптимизировать то, что у вас есть, а не изобретать велосипед.

Редактировать: Как сказал Джефф Меркадо, если вы решите выбрать собственный маршрут, я желаю вам удачи в ваших совместных операциях.

Исходя из вашего комментария, я по-прежнему обеспокоен тем, что вы не понимаете, какую роль играет .NET C ++ (недавно замененный C ++ / CLI). Я думаю, что это может быть просто идеальным решением для вас. Это позволяет, скажем, написать элемент управления ActiveX на C ++ (что я и рекомендовал бы сейчас), а затем немедленно написать для него оболочку .NET, не выходя из C ++, но вместо этого используя довольно большое расширение C ++.

Еще одно дополнение: используйте Visual Studio 2010, если это вообще возможно. C ++ / CLI - огромное улучшение по сравнению с его предшественниками. Что касается ActiveX, не беспокойтесь, если руководства старые. За последнее десятилетие оно не сильно изменилось.

...