C++调用Java函数的问题?

yuucyf 2015-05-29 09:54:42
提供一个用C++写的dll库给 java使用,其中有一些状态会透过回调函数通知 Java,回调函数的实现在 Java 里面,在 C++ 库的主线程中调用回调函数没有问题,都是OK的,可是在 C++ 库的子线程调用 回调函数就会崩溃,而回调函数里面什么事情都没有做,就打印出来一行日志,执行回调是成功,可是就是导致 C++ 库崩溃!
C++ 中回调原型:
bool (__stdcall * NotifiedMsg)(unsigned int MsgCode, void *pInData, unsigned int InDataLen,
void *pOutData, unsigned int *pOutDataLen);

Java中函数定义:
public boolean invoke(int MsgCode, Pointer pData, int DataLen, Pointer pOutData, IntByReference pOutDataLen)
{
}

请问下大家有没有这样的经验,可能问题出在哪里吗?
...全文
391 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuucyf 2015-06-01
  • 打赏
  • 举报
回复
引用 2 楼 vcshcn 的回复:
把回掉函数写在jni里,回掉函数里面再调用java类的方法
主要是目前没有把 DLL 中导出的接口使用 jni 封装给 java 使用,而是直接使用 DLL 的方式提供给 java 使用才出现这样的问题,主要是目前不知道是啥原因造成?
vcshcn 2015-05-29
  • 打赏
  • 举报
回复
把回掉函数写在jni里,回掉函数里面再调用java类的方法
yuucyf 2015-05-29
  • 打赏
  • 举报
回复
没人回,自己顶一下?

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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