ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

jna StdCallCallback 回调问题查证

2020-12-01 15:33:13  阅读:483  来源: 互联网

标签:__ StdCallCallback 查证 jna stdcall 回调 com


1、jna 调用公司动态库老退出 退出码是0xc0000409,网上查是 溢出,于是编一个debug模式动态库来调试

2、

 

 

报这个错,网上查 与回调函数的调用约定方式有关 也就是__stdcall  __declspec

看 dll 代码,导出函数都是 __declspec,回调函数是__stdcall

 

功夫不负有心人 终于找到回调函数是__stdcall的处理方法

  1. package com.jna.dll;
  2.  
  3. import com.sun.jna.Pointer;
  4. import com.sun.jna.win32.StdCallLibrary.StdCallCallback;
  5.  
  6. /**
  7. * @author Administrator
  8. * 定义回调函数接口并继承StdCallCallback
  9. * 必须继承自com.sun.jna.Callback接口 (如果回调函数是以stdcall输出,有时候可能引起jvm崩溃,
  10. * 可以改成继承StdCallCallback接口试试,)
  11. 子接口必须定义单个公有方法或一个名为callback的公有方法。必须持有到回调对象的一个存活引用。一个回调应该不抛出异常。
  12. */
  13. public interface CallBack extends StdCallCallback {
  14. void JMp4Server_RegCallBack(int UserID, int MP4BackCode,Pointer pData, int dwDataSize);
  15. }

https://blog.csdn.net/little__superman/article/details/89326526

 

 

 

 

3、另外 注意:要调用的DLL位数要与JDK位数相同,否则无法调用。

 

java就是ok,以后全this

 

标签:__,StdCallCallback,查证,jna,stdcall,回调,com
来源: https://www.cnblogs.com/cnchengv/p/14068396.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有