最近在搞关于把vs2010中的project,使之能够在Java下面运行,有一个调用本地接口的问题,JNI那个涉及到复杂细节太多,就使用了最新的JNA(java native access)

网上也给出了很多关于一些动态库的实例,如何在java程序中写接口,对jna的接口重载,初始化实例的问题,但涉及到如何的多数是如一些系统的动态库(msvcr.dll,c)等,往往缺乏如何写自己的实例,编译成动态库的问题,即使有的例子往往会遇到一个问题,很多帖子也有说明,如:

:java.lang.UnsatisfiedLinkError: Error looking up function  ????

这个表示动态库已经被正确加载了,只是找不到函数罢了。于是花了很久的功夫找原因,最后才发现其实是一个所谓的decorated 和 undecorated 函数名的问题,

dll 通常默认在编译为动态库时,类似于函数重载的实现方法,把参数,所属类,返回值等信息通通加进函数名中,所以当JNA那头开始调用时,只是用原型的函数名

时,就出现找不到名字的情况。

而只要在函数之前加上一个extern "C" ,就相当于告诉动态库编译器,只用其undecorated 名字编译。dependency walker 中也有这个选项。

vs可以调用java接口吗_关于vs2010下编译dll动态库,JNA接口在java中调用的问题相关推荐

  1. JNA框架调用dll动态库(给你整得明明白白)

    java调用dll动态库的方法,总的有三种:JNI.JNA.JNative.其中JNA调用DLL是最方便的.网上文章一大堆,我就不废话了. 使用JNA框架调用DLL动态库,步骤如下: 一.环境准备 1 ...

  2. C++中.lib静态库、.dll动态库的生成及调用2

    关于动.静态库的介绍及静态库的生成及调用参见:C++中.lib静态库..dll动态库的生成及调用<1>,本文主要介绍基于VS2015平台的动态库dll的生成及调用方法. 一.动态库的生成 ...

  3. C++中.lib静态库、.dll动态库的生成及调用1

    一.前言 1.动态链接库(dll)与静态链接库(lib): 动态链接库(dll)是一个可以被其他应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源.在链接步骤中,连接器将从库文件取得所需的代 ...

  4. 【转】matlab与C/C++混合编程——在Windows/Linux上调用Matlab编译的动态库文件

    转自:matlab与C/C++混合编程--在Windows/Linux上调用Matlab编译的动态库文件_sinat_18131557的博客-CSDN博客 date version comments ...

  5. linux 下的动态库制作 以及在python 中如何调用 c 函数库

    linux 下的动态库制作 以及在python 中如何调用 c 函数库 动态库: 动态库又称动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序 ...

  6. Node.js 调用 dll动态库 以华旭身份证阅读器为例

    需求来源 由于使用Electron使用开发桌面端,同时也需要连接硬件设备,单纯使用js方法无法完成,需要通过Node调用dll动态库方式完成. 版本说明: node v12.18.3 (32位) np ...

  7. Windows系统下通过JNI调用dll动态库的实现

    目的:java代码使用jni获取数据 工具: eclipse + Microsoft visual studio (c++) 业务代码: Java代码业务实现: package com.weip.jn ...

  8. And roid下编译自己的库文件 jar并在应用中调用

    android编译系统的makefile文件Android.mk写法如下 (1)Android.mk文件首先需要指定LOCAL_PATH变量,用于查找源文件.由于一般情况下 Android.mk和需要 ...

  9. jsp中java代码无效_来杯咖啡,教你如何优雅的在java中统计代码块耗时

    推荐阅读: Sping源码+Redis+Nginx+MySQL等七篇实战技术文档,阿里大佬推荐 阿里内部:2020年全技术栈文档+PPT分享,(万粉总结,回馈粉丝) 在我们的实际开发中,多多少少会遇到 ...

最新文章

  1. android.view.InflateException: Binary XML file line #16: Binary XML file line #16: Error inflating
  2. weblogic修改java重启_修改weblogic域的jdk
  3. linux 下查mac
  4. qtablewidget 数据量大效率很低_让大牛带你走进大数据分析:R基础及应用的潮流尖端,享受RHadoop...
  5. 使用GitHub免费搭建属于自己的网站
  6. 数字IC设计bilibili-Designer Compiler的理论笔记+实操
  7. 梁云 北大 计算机,北京大学信息技术高等研究院
  8. OpenCV学习之Scalar数据类型
  9. 常用正则表达式总结(js与C#对照)
  10. 引领三消新模式 《梦幻花园》商业化分析
  11. 【转】DICOM 网关的设计与实现
  12. 20145235 《Java程序设计》第6周学习总结
  13. 【大数据】Linkis是什么呢
  14. 【Unity Shader入门】☀️ | 使用Shader实现一个 图片边框 ✨制作!
  15. Bigben vlc sdl 播放视频可随窗口改变大小
  16. 复盘MWC2017:不可错过的NFV产业链三件大事
  17. ncorrect Usage. flag provided but not defined: -rpc
  18. XGBoost的目标函数推导和分裂增益计算
  19. android中api简介
  20. U盘安装ubuntu12.04成功后系统无法启动的原因及解决办法

热门文章

  1. EHcache缓存框架详解
  2. 【摘录】《程序设计导引及在线实践》之排列
  3. [转载]Programming MS Office 2000 Web Components第二章第三节
  4. 50%企业数据治理失败!这9大要素才是成功关键
  5. 盘点Greenplum 6.0六大新特性及展望
  6. ACM公布了2017年图灵奖得主:荣誉属于体系架构
  7. 我从小米裸辞后进Shopee了...
  8. 优化if-else代码的八种方案
  9. 面试官问:HTTP 的负载均衡你了解么?你不是说了你们用的Nginx么?说一下把。...
  10. 介绍Spring Cloud Stream与RabbitMQ集成