PhonicDLL.tpi_SetEventNotifyCallBackProc(pdataRec);  这一段应该怎么写?

解决方案 »

  1.   

    所谓“保持活动状态”,就是保证其不被GC回收。例如:1. 如果你的pdataRec是static的,例如放到一个static的集合里,然后等回调之后才从集合里清除掉。
    2. 显示地使用 GC.KeepAlive 来阻止 pdataRec 被处理掉。
      

  2.   

    这个能编译通过吗?在static函数Main里面调用的
    PhonicDLL.tpi_SetEventNotifyCallBackProc(pdataRec);但是 pdataRec 却不是静态成员变量。
    p_MyPhonicCallBack pdataRec = new p_MyPhonicCallBack(MyPhonicCallBack);
    静态函数中应该无法访问非静态成员吧。
      

  3.   

    把 pdataRec 改成static就可以了吧。
      

  4.   

    是呀,可是下面那句 PhonicDLL.tpi_SetEventNotifyCallBackProc(pdataRec); 就编译不通过了,于最匹配的方法具有一些无效参数,求赐教。
      

  5.   

    你把tpi_SetEventNotifyCallBackProc这个函数的C++定义贴出来看看