Как использовать Windows Forms в приложении C / C ++? - PullRequest
0 голосов
/ 05 октября 2009

У меня есть существующий проект, созданный с использованием C / C ++ в среде разработки. В настоящее время мы хотим изменить существующую форму, используя приложение Window Forms , но проблема в том, что существующий проект использует Common Runtime Library = No / CLR и Runtime Library = / MTd.

Но приложение Windows Forms использует Common Runtime Library = / CLR и Runtime Library = / MDd. Посоветуйте, пожалуйста, можно ли использовать приложение Windows Forms для создания формы в существующем проекте?
Есть ли учебник по этому поводу?

Комментарий от MSDN был: -

Внимание! Не смешивайте статические и динамические версии времени выполнения библиотеки. Наличие более одной копии библиотек времени выполнения в процессе может вызвать проблемы, потому что статический данные в одной копии не передаются другая копия. Компоновщик мешает вы от связывания со статическими и динамические версии в одном файле .exe, но вы все равно можете в конечном итоге с двумя (или подробнее) копии времени выполнения библиотеки. Например, динамическая ссылка библиотека связана со статическим (не DLL) версии времени выполнения библиотеки могут вызвать проблемы при использовании с файлом .exe, который был связан с динамическая (DLL) версия библиотеки времени выполнения. (Вы должны также избегать смешивания отладки и неотладки версии библиотек в одном процесс.)
http://msdn.microsoft.com/en-us/library/2kzt1wy3(VS.71).aspx..

Ответы [ 2 ]

1 голос
/ 05 октября 2009

Простой ответ - нет. Более точный ответ вроде бы, но вы, вероятно, не захотите.

Можно использовать Windows Forms (т.е. управляемый код) для вашего пользовательского интерфейса и что-то еще (например, не .NET / неуправляемый код) для логики вашего домена. Тем не менее, я думаю, что если вы зададите этот вопрос, то это будет очень много для вас на данный момент.

Я предлагаю вам создать пользовательский интерфейс с помощью Windows Forms, а затем этот пользовательский интерфейс вызвать собственную C / C ++ DLL. Google для PInvoke о том, как вызвать неуправляемую DLL (C / C ++) из управляемого (.NET) кода.

Если бы вы сделали это, вы бы гораздо лучше могли ответить на этот вопрос.

0 голосов
/ 05 октября 2009

Программное обеспечение моей компании часто должно иметь модули, которые смешивают управляемый и неуправляемый код и пользовательские интерфейсы. Что мы делаем, это разделяем модули на их собственные исполняемые файлы и выставляем функциональность как объекты локального сервера COM. Таким образом, неуправляемый код может иметь пользовательский интерфейс, написанный на управляемом коде.

Тем не менее, вам нужно сделать много сантехники, чтобы заставить его работать. Мы делаем это таким образом, потому что наши приложения были развернуты на местах в течение многих лет, и потребуются годы, чтобы преобразовать всю программу в .NET

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...