#include "Stdafx.h"
#include "NetSupportAPI.h"
/**
* 打开清单工程文件
* @param [in] filePath 文件路径
* @return 返回工程文件对象地址
*/
int __stdcall BillAPI_OpenProjectFile(PCTSTR filePath)
{
return 10086;
}
这上面是写好的C++代码,已经生成了BwBillNetSupport.dll文件,现在要在JAVA中调用这个文件,在控制台输出10086即可,应该如何实现呢,用JNA实现么,如果用JNA实现,具体如何实现,最好能贴上实现代码,还有这个BwBillNetSupport.dll应该放在工程哪里?大家帮个忙
------解决方案--------------------
还是用JNative,这个比较简单,项目在这里http://sourceforge.net/projects/jnative/files/jnative/
参照这个一步步做就可以了
http://tvjody.iteye.com/blog/125643
这是你那个dll的测试程序,很简单
package com.df.ljh;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.xvolks.jnative.JNative;
import org.xvolks.jnative.Type;
public class CallDllTest {
public static void main(String[] args)
{
System.load("D:/BwBillNetSupport.dll"); //加载dll
try {
JNative openCamera = new JNative("D:/BwBillNetSupport.dll", "BillAPI_OpenProjectFile"); //加载函数
openCamera.setRetVal(Type.INT); //设置返回值类型
openCamera.invoke(); //执行
System.out.println(openCamera.getRetValAsInt());
} catch (Exception ex) {
Logger.getLogger(CallDllTest.class.getName()).log(Level.SEVERE, null, ex);
}
}
}