我在Visual Studio 6中创建了一个简单的函数,这是代码
#include "stdafx.h"
BOOL APIENTRY DllMain( HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)
{
return TRUE;
}
extern "C" __declspec(dllexport) char __stdcall GetCompanyCode()
{
return 1;
}
我需要从java调用函数GetCompanyCode,所以我使用了JNA 首先我在java中创建接口
package javaapplication4;
import com.sun.jna.Library;
/**
*
* @author amir
*/
public interface CompanyCode extends Library
{
public byte GetCompanyCode();
}
然后加载dll
import java.io.FileNotFoundException;
import java.io.IOException;
import com.sun.jna.Native;
import java.security.NoSuchAlgorithmException;
import java.sql.SQLException;
/**
*
* @author amir
*/
public class JavaApplication4
{
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException, FileNotFoundException, NoSuchAlgorithmException
{
System.setProperty("jna.library.path", "C:/");
CompanyCode Company= (CompanyCode)Native.loadLibrary("CompanyCode", CompanyCode.class);
byte x=Company.GetCompanyCode();
System.out.println(x);
}
}
我收到了错误
线程中的异常" main" java.lang.UnsatisfiedLinkError:错误 查找功能' GetCompanyCode':指定的程序可以 找不到。
at com.sun.jna.Function。(Function.java:179)at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:347)at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:327)at com.sun.jna.Library $ Handler.invoke(Library.java:203)at com.sun.proxy。$ Proxy0.GetCompanyCode(未知来源)at javaapplication4.JavaApplication4.main(JavaApplication4.java:28) C:\ Users \用户埃米尔\应用程序数据\本地\的NetBeans \缓存\ 8.2 \执行人-片段\ run.xml:53: Java返回:1 BUILD FAILED(总时间:0秒)
我该怎么办?