JNA访问64位DLL(Windows7 64位)

时间:2012-11-08 22:30:14

标签: java dll 64-bit jna

你可以请一下建议吗?我有简单的DLL(在Windows 7 64位下)和简单的Java代码,JNA访问此DLL。 问题是当我使用这个DLL的64位版本看起来我在我的DLL测试函数 giveIntGetInt 中无法从Java获取参数时,我使用32位DLL时没有问题。 哪里错了? 谢谢!

import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Platform;
import com.sun.jna.Pointer;

/** Simple example of native library declaration and usage. */
public class HelloWorld {
    public interface simpleDLL extends Library {
        simpleDLL INSTANCE = (simpleDLL) Native.loadLibrary(
            (Platform.isWindows() ? "simpleDLL" : "simpleDLLLinuxPort"), simpleDLL.class);
         int giveIntGetInt(int a);               // int giveIntGetInt(int a);
    }

    public static void main(String[] args) {
     int b = simpleDLL.INSTANCE.giveIntGetInt(2);
     System.out.println("Hello, World\n");

     System.out.println(String.format("Argument %d", b));

    }
}

这是C dll方法:

int simpleDLL::giveIntGetInt(int a)
    {
        return 2*a;
    }

例如,这是我用64位dll:

Hello, World 
Argument 181140

32位dll:

Hello, World 
Argument 4

0 个答案:

没有答案