在C+中使用回调函数C#delegate dll+;
在C中使用回调函数C#委托dll++ 但是我有一个错误我怎么能修复它呢 这是我的c代码在C+中使用回调函数C#delegate dll+;,c#,c++,C#,C++,在C中使用回调函数C#委托dll++ 但是我有一个错误我怎么能修复它呢 这是我的c代码 public delegate void Callback\u Calc(int nResult); [Guid(“180726E3-7185-4224-BF27-3A7A60E5D1A7”)] 公共接口 { 整数相加(整数a、整数b); void Add_回调(inta、intb、IntPtr回调_结果); } [Guid(“9FF07EDD-8DEE-4CCA-9BDF-2C753F771AC”)] 公
public delegate void Callback\u Calc(int nResult);
[Guid(“180726E3-7185-4224-BF27-3A7A60E5D1A7”)]
公共接口
{
整数相加(整数a、整数b);
void Add_回调(inta、intb、IntPtr回调_结果);
}
[Guid(“9FF07EDD-8DEE-4CCA-9BDF-2C753F771AC”)]
公共类计算:ICal
{
公共整数相加(整数a、整数b)
{
返回(a+b);
}
公共无效添加回调(int a、int b、IntPtr回调结果)
{
整数和=a+b;
Callback_Calc func=(Callback_Calc)Marshal.GetDelegateForFunctionPointer(Callback_Result,typeof(Callback_Calc));
func(sum);
}
}
您的Add\u回调
函数需要指向该函数的指针。因此,在这一行中:
m_Calc->Add_Callback(10,10,(_Callback_Calc *)callback_func);
您需要将第三个参数更改为指向callback\u func
的指针