我正在尝试为使用C语言编写的National Instruments驱动程序(DLL)的科研设备编写Java程序。目前我对这些DLL一无所知。如果需要,我可以通过我的客户联系NI获取详细信息。
我的C / C ++技能很古老,所以宁愿避免任何需要编写C / C ++代码的东西。
寻找建议,包括指导我的教程。我的Java技能非常出色,目前我的C / C ++就像十年之久。
答案 0 :(得分:1)
您案例中最简单的选项可能是JNA。
这是一个简单的Hello World example,用于向您展示映射C库的printf
函数所涉及的内容:
package com.sun.jna.examples;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Platform;
/** Simple example of JNA interface mapping and usage. */
public class HelloWorld {
// This is the simplest way of mapping, which supports extensive
// customization and mapping of Java to native types.
public interface CLibrary extends Library {
CLibrary INSTANCE = (CLibrary)
Native.loadLibrary((Platform.isWindows() ? "msvcrt" : "c"),
CLibrary.class);
void printf(String format, Object... args);
}
// And this is how you use it
public static void main(String[] args) {
CLibrary.INSTANCE.printf("Hello, World\n");
for (int i=0;i < args.length;i++) {
CLibrary.INSTANCE.printf("Argument %d: %s\n", i, args[i]);
}
}
}
JNA&#39; JavaDoc和github project包含各种用例的示例和教程。