Вызов функции VS6 C DLL из кода java
я делаю простую функцию c в 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; }
мне нужно вызвать функцию GetCompanyCode из java поэтому я использовал 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); } }
я получил ошибку
Цитата:Исключение в потоке "основной" Java для.яз.UnsatisfiedLinkError: ошибка поиска функции 'GetCompanyCode': Указанную процедуру найти не удалось.
на ком.солнце.Юна.Функция.(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(неизвестный источник) на javaapplication4.JavaApplication4.основной(JavaApplication4.Ява:28) C:\Users\amir\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Ява вернулись: 1 построить не удалось (общее время: 0 секунд)
что же мне делать?
Что я уже пробовал:
теперь я не знаю, что еще мне делать, я много гуглил, но то, что я нашел, я уже сделал