06 2012 档案
摘要:JNA(Java Native Access)框架是一个开源的Java框架,是SUN公司主导开发的,建立在经典的JNI的基础之上的一个框架。使用JNI调用共享类库(.dll/.so文件)是非常麻烦的事情,既需要编写java代码,又要编写C语言的代理方法,这其中需要很多数据类型的转换,是让人非常头痛。JNA框架就是为了解决这些问题和繁琐的事情而开发的,它提供一组Java工具类用于在运行期动态访问系统本地共享类库而不需要编写任何Native/JNI代码。开发人员只要在一个java接口中描述目标native library的函数与结构,JNA将自动实现Java接口到native function的.
阅读全文
摘要:前面一篇文章“VS2010 C++创建、调用DLL图解”简单讲述了在Windows下创建和调用动态库(.dll文件)方法,本篇结合项目过程,总结一下Linux下调用动态库(.so文件)的方法和注意点。 像window调用库文件一样,在linux下,也有相应的API因为加载库文件而存在。它们主要是以下几个函数:函数名功能描述dlopen打开对象文件,使其可被程序访问dlsym获取执行了 dlopen 函数的对象文件中的函数的地址dlerror该函数没有参数,它会在发生前面的错误时返回一个字符串,同时将其从内存中清空; 在没有错误发生时返回 NULL,dlclose关闭目标文件。如果无需再调用共.
阅读全文