求大神告知 jna连接dll文件的时候为什么找不到方法

m0_52329387 2020-11-08 01:01:46
我先讲下我怎么弄的 1我下载了个vs写了一个dll文件 2有2个方法 第一个是void say 第二个是 void __stdcall says 3我在java里写了个连接类 4我这个连接类继承的是stdcalllibrary 5两个jna的jar是5.2版本的 6结果 我只能调用第一个方法 第二个调用报错 是方法找不到 7etren C我也写了 求求有些方面专家告知我这个是什么情况
...全文
222 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
vc_dreamver 2020-11-09
  • 打赏
  • 举报
回复
先用dumpbin.exe /exports 查看一下导出的函数名,用VS默认的类型应该是 _cdecl, 如果用__stdcall 方式,可能会在函数名后加一些字符。可以用__cdecl替换掉__stdcall试一下。不过我用BCB采用__stdcall就没有问题的。
  • 打赏
  • 举报
回复
DLL中的函数应该C方式导出,不要C++导出
m0_52329387 2020-11-08
  • 打赏
  • 举报
回复
引用 1 楼 早打大打打核战争的回复:
DLL中的函数应该C方式导出,不要C++导出
兄弟 我这个 函数写extern "C" 不就是用c导出么 我不太懂
ooolinux 2020-11-08
  • 打赏
  • 举报
回复
第一个是void say 第二个是 void __stdcall says
编译器对二者函数名字修饰不一样,你可以去掉__stdcall试试,使用缺省的C调用方式。

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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