我有以下C代码。我的目标是从java中调用C函数。使用JNI从java调用C函数
C代码:
_declspec(dllimport) BYTE __stdcall CPSC1900Connect(BYTE port, void *param);
JNIEXPORT jbyte JNICALL Java_CPSE_CPSC1900Connect(JNIEnv * env, jclass hPrinter, jbyte port, jstring Answer)
{
BYTE RC;
// I need to call CPSC1900Connect(BYTE port, void *param); function and pass (i DONT KNOW HOW TO PASS THOSE PAREMETER TO THIS METHOD.
//port and ANSWER PARAMETER. THE METHOD RETURNS BYTE WHICH I SHOULD BE VIED FROM JAVA
return Answer;
}
java代码:
public class CPSE {
public native byte CPSC1900Connect(byte port,String param);
public native String CPSC1900Disconnect(String param);
static{
try {
System.loadLibrary("dll/CPSLPT9x");
System.loadLibrary("dll/CPSRC");
System.loadLibrary("dll/CPSE");
System.loadLibrary("dll/MCHIP");
} catch (Exception e) {
System.out.println(e);
}
}
public CPSE() {
byte port=CPSC1900_USB;
param ="xx.xx.xx.xx"// ip address
byte response= CPSC1900Connect(BYTE port, void *param);
}
public static void main(String[] args)
{
new CPSE();
}
}
我的问题是:如何从Java应用程序中传递价值,并把它传递给C函数,并得到回应?
我已经使用这个[tutorial](http://www.ibm.com/developerworks/java/tutorials/j-jni/j-jni.html)完成了JNI。 它会解决你的问题。 –
@Jithith John我最大的问题是如何将值传递给函数,并返回字节 – NemugaM