Переписать MFC DLL с помощью C #? - PullRequest
0 голосов
/ 27 октября 2011

У меня есть подключаемый модуль DLL, написанный на C ++ MFC, загруженный сторонним приложением, предположительно написанным на C ++ с MFC.Моя DLL имеет графический интерфейс и основана на CWinApp;Я предполагаю, что каким-то образом насос сообщений моего плагина взаимодействует с насосом сообщений основного приложения (?) Я полагаю, что моя DLL, вероятно, загружается через LoadLibrary и запускается через вызов экспортируемой функции в моей DLL.Мой плагин вызывает функции и классы, которые стороннее приложение предоставляет через статическую библиотеку, с которой ссылается моя DLL.

Это нормально, но работа с MFC / C ++ разочаровывает по сравнению с работой в WinForms и C #.Поэтому мне интересно, возможно ли, чтобы моя DLL не использовала MFC, а вместо этого использовала winforms и C #?Есть ли способ, которым это может работать?Я представляю себе, я думаю, DLL, написанная на C #, которая экспортирует функцию, которая вызывается из стороннего приложения, а затем запускает приложение winforms?Кроме того, моя DLL должна быть связана со статической библиотекой C ++ для взаимодействия со сторонним приложением.Будет ли возможно получить доступ из C #?Или, если это невозможно, может быть, я напишу какую-нибудь обертку?

1 Ответ

2 голосов
/ 27 октября 2011

Самый простой способ - обернуть вашу C # dll в C ++ dll.Просто создайте оболочку в управляемом C ++, которая принимает любые вызовы, которые необходимо обработать из основной программы.Затем он может вызвать DLL C # и позволить ей обрабатывать всю работу.

...