Я пытаюсь написать приложение на основе C#, использующее C++ DLL. Приложение C# предназначено для пользовательского интерфейса и имеет все преимущества WPF. В C++ DLL используются функции Win32 (например, для перечисления окон).Устранение неполадок с C++ для обработки в C#
Теперь я хочу, чтобы C++ DLL создавала событие, которое можно обрабатывать в приложении C#. Это то, что я пытался (на основе this article):
//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': improper use of 'event'; must be a member of a compatible event source
C2059: syntax error: 'event'
C3861: 'wE': identifier not found
Ключевое слово * event * должно отображаться внутри 'public ref class'. Кроме того, вы должны использовать управляемую 'value struct' вместо собственной' struct', чтобы код C# мог получить доступ к элементам структуры. –