Я пытаюсь написать приложение WPF на основе C #, которое использует C ++ DLL. Приложение C # предназначено для пользовательского интерфейса и обладает всеми преимуществами WPF. C ++ DLL использует функции Win32 (например, для перечисления окон).
Теперь я хочу, чтобы библиотека C ++ вызывала событие, которое можно обработать в приложении C #. Это то, что я пробовал (на основе эту статью):
//cpp file
#using <System.dll>
using namespace System;
struct WIN {
HWND Handle;
char ClassName;
char Title;
};
delegate void wDel(WIN);
event wDel^ wE;
void GotWindow(WIN Window) {
wE(Window);
}
Когда я пытаюсь скомпилировать этот код, возникают следующие ошибки:
C3708: 'wDel': неправильное использование 'event'; должен быть членом совместимого источника событий
C2059: синтаксическая ошибка: «событие»
C3861: 'wE': идентификатор не найден
public ref class
. Кроме того, вы должны использовать управляемыйvalue struct
вместо собственногоstruct
, чтобы код C # имел доступ к элементам структуры. - person Hans Passant   schedule 27.10.2014