这是我当天的第二个问题,原谅我。
我正在编写一个包装库来与扫描仪设备进行通信。源代码在C ++ MFC中。我正在将它转换为一个普通的Dll,它将从C#中调用。所以,我在C#中使用DllImport来调用包装器库。
现在我获得了MFC代码,并且该库是一个ActiveX对象,至少我是这么认为的。
class CDpocx : public CWnd
{
}
所以在我的包装器库中,我将有一个CDpocx实例,并将通过C#P / Invoke调用它。但问题是 CDpocx 还会引发一些我需要捕获的事件。在传统的应用程序中,我只想附加一个函数。但是我如何在非MFC类上附加事件。
我见过类似的东西:
BEGIN_EVENTSINK_MAP(CVC60Dlg, CDialog)
//{{AFX_EVENTSINK_MAP(CVC60Dlg)
ON_EVENT(CVC60Dlg, IDC_DPOCXCTRL1, 1 , OnReadyDpocxctrl1, VTS_NONE)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
OnReadyDpocxctrl1 是处理 1 (就绪)事件的函数。
如何在非MFC类中获得simmilar函数。
此致 Maksud
答案 0 :(得分:0)
我不确定这是否是您想要的,但是如果您想从C#调用ActiveX组件,您应该使用Windows Forms ActiveX Control Importer (Aximp.exe)来转换API类型库中的类型定义以进行ActiveX控件进入Windows窗体控件。