我在c++程序中 通过
#using \"..\\debug\\CTEST.dll\"
using namespace CTEST;
...
ClassName ^p = gcnew ClassName(); //实例化托管对象
p->Fun(); // 调用c#托管的函数
的方式调用c#函数,现在我需要设置一个回调函数到c#的DLL中,已知:
c#里回调函数定义如下 :
namespace CTEST
{
public class ClassName : UserControl
{
public ClassName();
public event ClassName.DataReceive myDataReceive;
public delegate void DataReceive(int iDoor);
}
}
且C#里调用方式 this.op1.myDataReceive += new CTEST.ClassName.DataReceive(this.op1_myDataReceive);
问题: 我在c++中如何定义对应的回调函数? 且如何进行设置?
c++ 托管后,直接 写
p->myDataReceive += gcnew ClassName::DataReceive(GetAccessMsg); 这种语法就可以了,
void GetAccessMsg(int iDoor)
{
cout<<iDoor<<endl;
}
没接触过托管这块东西,得好好看看!