我正在尝试编写一个使用C++ DLL的基于C#的WPF应用程序。 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#代码访问结构成员。 – 2014-10-27 18:50:53