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类的方法来实现...

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

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

    JNA 调用dll jna调用 c++

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

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

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

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

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

    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文件或.so动态链接库的代码demo

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

    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...

    自己写的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方式实现Java调用dll的必用jar包

    标题"JNA方式实现Java调用dll的必用jar包"指的是使用JNA库来调用Windows平台上的动态链接库(.dll文件)所需的Java类库。这个"jna5.jar"文件是JNA的一个版本,其中包含了所有必要的组件,使得Java程序能够通过JNA...

    jna调取dll示例demo

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

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

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

    jna调用C++dll

    在压缩包文件"TestJNA"中,可能包含了示例的Java代码和C++ DLL文件。通过分析和运行这些代码,你可以更深入地理解JNA如何处理C++ DLL的调用和回调。同时,要注意JNA的版本兼容性,以及64位和32位DLL的适配问题,确保...

    JNA调用DLL简单示例

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

Global site tag (gtag.js) - Google Analytics