-
有关JNA实现的问题0
在使用JNA 实现的时候,如果方法写成:
char * __stdcall QueryTask(const char *szInput)
生成的DLL,无法被JAVA程序加载成功。
提示:
Exception in thread "main" java.lang.UnsatisfiedLinkError: Error looking up function 'QueryTask': 找不到指定的程序。
如果把程序改成char* QueryTask(char *szInput)
却可以成功执行。
我不是很理解为什么,有高手能指点一下吗2014年5月11日 23:14
1个答案 按时间排序 按投票排序
-
https://github.com/twall/jna/blob/master/www/GettingStarted.md
package com.sun.jna.examples.win32; import com.sun.jna.*; // [color=darkred]kernel32.dll uses the __stdcall calling convention (check the function[/color] // [color=darkred]declaration for "WINAPI" or "PASCAL"), so extend StdCallLibrary[/color] // Most C libraries will just extend com.sun.jna.Library, public interface Kernel32 extends StdCallLibrary { // Method declarations, constant and structure definitions go here }
2014年5月12日 10:10
相关推荐
jna 实现回调函数 code.zip jna 实现回调函数 code.zip jna 实现回调函数 code.zip jna 实现回调函数 code.zip jna 实现回调函数 code.zip jna 实现回调函数 code.zip jna 实现回调函数 code.zip
在“JNA实现回调及其他”这个主题中,我们将深入探讨JNA如何实现回调函数以及其在实际应用中的其他关键特性。 ### 1. JNA的基本原理 JNA的核心在于其“结构体-接口”映射机制。Java中定义的接口会被映射为C/C++的...
JNA通过动态链接库(DLLs on Windows,shared libraries on Unix/Linux)实现了这一点,极大地简化了Java应用程序与本地资源的交互。`jna.jar`文件是JNA库的核心组件,包含了所有必要的类和资源,使得开发者可以在...
总的来说,JNA作为一个强大的库,简化了Java与本地库交互的过程,使得开发者可以在Java环境中充分利用系统资源,实现更丰富的功能。在使用过程中,需要注意版本间的差异,以及正确配置和管理本地库的依赖。同时,...
在"Java实现获取窗口句柄并操作窗口 JNA"的场景中,窗口句柄是操作系统用来标识和管理窗口的一个标识符。在Windows系统中,窗口句柄通常被称为HWND。通过窗口句柄,我们可以执行诸如移动、最大化、最小化、关闭等...
本教程将详细讲解如何在Android Studio中使用JNA来实现本地库的调用。 1. **JNA简介** - JNA是一种轻量级的框架,通过动态映射本地函数到Java方法,使得Java可以直接调用C/C++等本地库。 - 它通过提供一个接口...
标题"JNA相关包 jna.jar"暗示了我们讨论的主题是关于JNA的核心库。JNA主要包含两个核心组件:`jna.jar`和`jna-platform.jar`。`jna.jar`是JNA的基本库,它提供了基本的接口和机制,使得Java可以直接调用本地库。而`...
jna-4.5.1 , jna-4.5.1-sources , jna-platform-4.5.1 jar包 JNA全称Java Native Access,是一个...开发人员只要在一个java接口中描述目标native library的函数与结构,JNA将自动实现Java接口到native function的映射。
标题"jna jar实现java调用dll"指的是使用JNA库来在Java程序中调用Windows平台上的动态链接库(DLL)文件。JNA通过jar包的形式提供服务,使得Java开发者可以方便地将DLL的功能集成到Java应用中。 描述中提到...
JNA通过映射Java方法到本地函数,实现了Java与操作系统底层功能的交互,极大地简化了在Java应用中使用系统API或DLL库的过程。在这个场景中,我们有两个文件:`jna-3.3.0.jar`和`jna-3.3.0-platform.jar`,它们分别是...
7. **线程安全**:JNA库是线程安全的,但如果你的dll函数不是线程安全的,你需要在Java代码中处理线程同步问题。 JNA的灵活性在于它可以透明地处理不同平台的调用约定,支持各种数据类型,并且提供了一种相对简单的...
1. **引入JNA依赖**:在项目中添加JNA相关的依赖库。 2. **定义接口**:创建一个继承自`Library`或`StdCallLibrary`的接口,并定义所需的方法。 3. **接口实例化**:通过`Native.loadLibrary()`函数加载动态链接库,...
这个压缩包包含两个重要的JNA相关jar文件:`jna.jar`和`platform.jar`。 `jna.jar`是JNA的核心库,其中包含了JNA的主接口和实现。它定义了Java到本地代码的桥梁,使得Java开发者可以轻松地调用C库或者其他本地库的...
"examples"包含了使用JNA实现的各种示例,如窗口透明、不规则形状等。这些示例展示了如何在实际项目中结合JNA来实现特定功能,对于初学者来说是非常有价值的参考资料。通过阅读和运行这些示例,可以加深对JNA的理解...
JNA通过反射机制实现了对本地库的动态调用,并且支持Windows下的.dll文件以及其他平台上的共享库。 #### 二、JNA实例分析 根据题目提供的信息,本节将详细解析一个JNA的应用实例。首先,我们将介绍C语言源代码部分...
解压这个文件后,用户可以查看JNA的源代码,了解其内部实现机制,进行定制化开发或者为项目贡献代码。源码可能包括JNA库本身、示例、文档以及其他辅助工具。通过研究源码,开发者可以更好地理解JNA如何处理内存管理...
JNA通过映射Java方法到本地库中的函数,实现了Java与C/C++等本地代码的无缝交互。在标题和描述中提到的“JNA调用dll jna调用c++”是指利用JNA来调用Windows系统中的动态链接库(.dll)文件,这些.dll文件通常由C++或...
总的来说,JNA-5.7.0和jna-platform-5.7.0是Java开发中非常实用的工具,它们极大地降低了与本地系统交互的复杂性,使得Java开发者可以更加专注于业务逻辑,而不是底层的系统调用实现。通过学习和掌握JNA的使用,...
因此,这里可能是用户在使用Eclipse集成开发环境中遇到与Tess4J相关的JNA版本问题,需要更新JNA来解决。 在压缩包子文件的文件名称列表中,只有“jna-4.0.0.jar”。这个文件包含了JNA 4.0.0版本的所有类和资源,...