c++ callback 函数转 c#

ludeli2004 2008-12-11 10:33:55
这是c++的回调函数:
// Callback functions.
void SetMessageProcessCallback(void* pUserObject_, void (*pfUserMessageProcessFunc_)(void*,AMC_MESG*));

__fastcall TFormProprioWare::TFormProprioWare(TComponent* Owner)
{
SetMessageProcessCallback((void *)this, &MesgProcessCallback);
}

void MesgProcessCallback(VOID* MyObjPtr, AMC_MESG* pclMesg_)
{
((TFormProprioWare*)MyObjPtr)->ProcessMesg(pclMesg_);
}

void TFormProprioWare::ProcessMesg(AMC_MESG *pclMesg_)
{}

下面是我转的代码:
[DllImport(Constant.Dllname_amc)]
public extern static void SetMessageProcessCallback(object sender, SetMessageCallback DelegateFunc);
[DllImport(Constant.Dllname_amc)]
public extern static void SetByteProcessCallback(object sender, SetByteCallback DelegateFunc);

public delegate void SetMessageCallback(object sender, ref AMC_MESG amc);
public delegate void SetByteCallback(object sender,byte ucByte);

SetMessageCallback callback1 = ProcessCallback.MesgProcessCallback;
SetByteCallback callback2 = ProcessCallback.ByteProcessCallback;

SetMessageProcessCallback(this, callback1);
SetByteProcessCallback(this, callback2);

public static void MesgProcessCallback(object sender, ref AMC_MESG amc)
{}
public static void ByteProcessCallback(object sender,byte ucByte_){}
可当控件的属性被修改时,这两个回调函数MesgProcessCallback 和 ByteProcessCallback 并不执行,请高手帮忙。
我想是不是动态库Constant.Dllname_amc没有被倒入内存中,所以它里面的线程没有启动的原因???
...全文
135 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ludeli2004 2008-12-11
  • 打赏
  • 举报
回复
没有人会吗?

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧