2023-01-19 382
我正在尝试在第三方DLL中调用本机方法,该方法具有C界面,其中包括:
DWORD ExampleInterfaceMethod( DWORD Mode, LPSTR Header );
我已经成功使用:
成功加载了DLL
System.loadLibrary("DLLName");
我已经创建了一个方法:
protected native int ExampleInterfaceMethod(int type, int Nth, byte[] name);
此方法似乎没有使用正确的变量类型,因为每当我称之为以下错误时:
java.lang.UnsatisfiedLinkError: com.DLLTest.ExampleInterfaceMethod(II[B)I
为了调用此方法,我需要在Java中使用哪些变量类型,或者我缺少其他内容?
使用JNI,您需要特殊命名的C函数来实现Java native方法.您不能简单地添加native方法来调用现有C函数 – 而是正常的方法是创建”包装器” C函数,该C函数称为现有的c函数,并以正确的方式命名.
您可能想看看 jna .这是JNI围绕JNI的包装器,可让您从Java侧调用C函数,而无需手动编写为此的适应本机代码.
以上所述是小编给大家介绍的从Java中调用带有C接口的DLL,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/25790.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态