nsjd.net
当前位置:首页 >> JNA调用C的DLL,如何取回当初传入的字符指针的修改值 >>

JNA调用C的DLL,如何取回当初传入的字符指针的修改值

C代码extern "C" int _declspec(dllexport) getXMLResult(char *result){result = "abcd";return 20;}这个函数的目的是传入字符指针,在函数内容修改指针指向的字符串内容java代码public class JNATest { // This is the standard, stable way o...

// This is the standard, stable way of mapping, which supports extensive // customization and mapping of Java to native types. public interface CLibrary extends Library { CLibrary INSTANCE = (CLibrary) Native.loadLibrary("TestD...

private HWND getHWnd(Component w) { HWND hwnd = new HWND(); hwnd.setPointer(Native.getComponentPointer(w)); return hwnd; } 你可以去看一下, \jna\src-full\src\com\sun\jna\examples\WindowUtils.java public static void setWindowAlph...

没做过这么复杂的。 但你想调用DLL, 应该是通过native生成的方法。你通过这个方法中的参数进行交互。

JNIJNative或者jacob都行最理想的是用JNI不过是用JNI比较麻烦,可能需要用C写数据类型转换的函数,但是能保证正确的调用Dll中的函数。Jacob和JNative也都不错,使用比较方法,但是可能无法成功的调用DLL的函数。

这个不能够这么掉,需要再次用c封装后java可以掉的格式才行,具体的流程: 1、在java写一个带native关键字的方法,只申明不实现; 2、通过javah 生成对应的 c函数的名称; 3、在c的这个函数实现中调用上面的接口; 具体的话,可以看一个我的ndk...

一般需要定义一个函数指针类型 typedef int (*function_pointer_t) ( int arg1, int arg2 ); 然后,定义函数指针变量 function_pointer_t fp_invoker = 0; 函数指针可以动态改变内容,改变调用对象,假设有两个函数 int function_sum

网站首页 | 网站地图
All rights reserved Powered by www.nsjd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com