0 0

JNA调用Dll文件问题5

下面是c++的代码:
// DllTest.cpp : Defines the exported functions for the DLL application.
//

#include "stdafx.h"
#include "iostream"
#include "stdafx.h"
#define _WIN32_WINNT   0x0501
#include <Windows.h>
#define MYLIBAPI  extern   "C"     __declspec( dllexport ) 

struct Point{
	int x;
	int y;
};

/*
要返回的函数
*/
MYLIBAPI void say(wchar_t* pValue);
MYLIBAPI int add(int a,int b);
MYLIBAPI double* getCpuInfo(int wait);
MYLIBAPI double* getArray();
MYLIBAPI int* getIntArray();
MYLIBAPI Point getPoint();


/*
函数的定义
*/
Point getPoint(){
	Point p;
	p.x=15;
	p.y=49;
	return p;
}

__int64 CompareFileTime ( FILETIME time1, FILETIME time2 )
{
	__int64 a = time1.dwHighDateTime << 32 | time1.dwLowDateTime ;
	__int64 b = time2.dwHighDateTime << 32 | time2.dwLowDateTime ;

	return   (b - a);
}

void  say(wchar_t* pValue){
	
	std::wcout.imbue(std::locale("chs"));
	std::wcout<<L"say::"<<pValue<<std::endl;
}
int add(int a,int b){
	return a+b;
}
double* getArray(){
	double arr[2] = {10.2,53.636};
	return arr;
}

int* getIntArray(){
	int* p;
	int arr[2] = {3,53};
	p = arr;
	return p;
}

double* getCpuInfo(int wait){
	HANDLE hEvent;
	BOOL res ;

	FILETIME preidleTime;
	FILETIME prekernelTime;
	FILETIME preuserTime;

	FILETIME idleTime;
	FILETIME kernelTime;
	FILETIME userTime;

	res = GetSystemTimes( &idleTime, &kernelTime, &userTime );


	preidleTime = idleTime;
	prekernelTime = kernelTime;
	preuserTime = userTime ;

	hEvent = CreateEvent (NULL,FALSE,FALSE,NULL); // 初始值为 nonsignaled ,并且每次触发后自动设置为nonsignaled

	WaitForSingleObject( hEvent,wait); //等待500毫秒
	res = GetSystemTimes( &idleTime, &kernelTime, &userTime );
	int idle = CompareFileTime( preidleTime,idleTime);
	int kernel = CompareFileTime( prekernelTime, kernelTime);
	int user = CompareFileTime(preuserTime, userTime);
	double cpu = (kernel +user - idle) *100.0/(kernel+user);
	double cpuidle = ( idle) *100.0/(kernel+user);

	//cout <<cpu<<endl;
	//cout <<cpuidle<<endl;
	double d[2] ={cpu,cpuidle}; 
	return d;
}







请问对应的java的jna代码怎么定义?
2012年1月09日 18:32
目前还没有答案

相关推荐

    JNA调用DLL完整实例demo

    在“JNA调用DLL完整实例demo”中,我们首先需要创建一个Java接口,这个接口将代表DLL中的函数。例如,如果DLL中有一个名为`recvWork`的函数,我们的Java接口可能会这样定义: ```java public interface ...

    Jna调用dll实例

    **正文** JNA(Java Native Access...本实例提供了一个具体的应用场景,有助于理解JNA调用DLL的过程,并解决了常见的中文乱码问题。通过学习和实践这个实例,开发者将能够更自如地在Java项目中集成和使用本地库功能。

    java用JNA调用dll实例,包含各种参数调用

    本实例将深入探讨如何使用JNA调用DLL,并涵盖了各种参数类型,包括基本数据类型、指针、结构体、回调函数、字符串以及数组。 首先,理解JNA的基本工作原理至关重要。JNA通过映射DLL中的函数到Java类的方法来实现...

    亲测可用,java 成功调用dll函数。包含调用回调函数,springboot版本。最近由于公司业务需要,要调用dll文件,用JNA调用。

    在Java通过JNA调用DLL时,如果DLL函数需要一个回调函数作为参数,那么Java需要定义一个接口,该接口的方法将作为回调函数的实现,JNA会处理这个接口的调用转换。 4. **Spring Boot**:Spring Boot是基于Spring框架...

    使用JNA替代JNI调用DLL,并解决内存溢出问题

    在使用JNA调用DLL的过程中,可能会遇到内存溢出的问题。这类问题通常发生在处理大量数据或长时间运行的应用场景中。为了避免这种情况,可以采取以下措施: - **优化数据结构**:合理设计数据结构,减少不必要的数据...

    jna调用系统dll文件并且获得返回参数的实例

    采用java jna4.1 调用C编写的dll文件,获得返回结果,且获得返回参数的例子

    最简单的JNA调用DLL

    标题中的“最简单的JNA调用DLL”是指Java Native Access(JNA)库在Java程序中调用Windows Dynamic Link Library (DLL) 文件的一种基础方法。JNA是Java平台上的一个开源库,它允许Java代码与本地平台API进行交互,...

    jna调用dll完成demo实例, 超简单

    本实例将详细介绍如何使用JNA调用DLL动态链接库,通过一个超简单的Demo来展示其过程。 首先,我们需要了解JNA的基本工作原理。JNA通过映射Java方法到本地库中的函数,实现了跨语言的通信。在Java中,我们定义一个...

    java jna 调用dll例子

    在本例中,“java jna 调用dll例子”指的是使用JNA在Java应用程序中调用Windows上的动态链接库(DLL)文件,这里特别提到了大华SDK的Dll,这通常用于处理视频流和视频播放功能。 大华SDK( Dahua Software ...

    JNA调用DLL函数.rar

    标题 "JNA调用DLL函数" 涉及的核心知识点是Java Native Access (JNA) 和如何通过JNA调用Windows Dynamic Link Library (DLL) 文件中的函数。在Java编程环境中,JNA提供了一种无需编写JNI(Java Native Interface)...

    jna调用dll

    本篇文章将深入探讨如何使用JNA调用DLL(动态链接库)文件,以及在VS(Visual Studio)中创建DLL,并确保Java与DLL之间的兼容性。 首先,理解JNA的基本概念至关重要。JNA提供了一种抽象层,使得Java可以直接调用C...

    JNA调用.dll文件或.so动态链接库的代码demo

    在标题中提到的“JNA调用.dll文件或.so动态链接库的代码demo”,这是一个实际应用JNA来调用本地动态库的示例。下面我们将深入探讨JNA的工作原理、使用步骤以及如何处理.dll和.so文件。 1. **JNA工作原理**: JNA...

    自己写的dll文件,用以java jna调用测试用途

    自己写的dll文件,用以java jna调用测试用途自己写的dll文件,用以java jna调用测试用途自己写的dll文件,用以java jna调用测试用途自己写的dll文件,用以java jna调用测试用途

    JAVA利用JNA调用DLL

    在Java编程环境中,有时我们需要与操作系统...在实际应用中,确保正确配置项目依赖,如添加JNA库的jar文件,并注意与本地库的兼容性问题。JNA测试项目"JNATest"可能包含一个完整的示例,演示如何从Java调用DLL并运行。

    jna调取dll示例demo

    java后端springBoot框架使用jna调取C语言的dll接口(停车场道闸接口) 包含构造体的调用, 回调函数的调用,JNA和C / C ++的数据类型映射,Pointer类型的使用

    JNA 调用dll jna调用 c++

    在标题和描述中提到的“JNA调用dll jna调用c++”是指利用JNA来调用Windows系统中的动态链接库(.dll)文件,这些.dll文件通常由C++或其他支持编译为本地代码的语言编写。 本文将详细介绍如何使用JNA进行dll调用,并...

    jna调用dll的例子,包含dll文件和详细说明

    总的来说,"jnademo"示例为开发者提供了一个实践JNA调用DLL的起点,帮助他们理解如何在Java中无缝地集成本地资源,以实现跨平台的解决方案。通过这个示例,你可以深入了解JNA的工作原理,以及如何将其应用到实际项目...

    JNA调用DLL简单示例

    在这个“JNA调用DLL简单示例”中,我们将探讨如何使用JNA来调用DLL中的函数。首先,我们需要了解DLL是什么。DLL(Dynamic Link Library)是Windows操作系统中的一种共享库,它包含可由多个程序同时使用的函数和资源...

    通过JNA让Java调用Dll方法

    研究java调用dll的时候,大部分都是通过jni,比较麻烦,我找到了通过jna方法调用dll的方法,用起来比较方便,只需要引用jna.jar包,这个jar包已经包含在程序中,还包含了我调用dll的遇到难道的解决办法。

    JNA调用dll动态库

    NULL 博文链接:https://javaeye-hua.iteye.com/blog/1853006

Global site tag (gtag.js) - Google Analytics