필자는 java 코드에서 dll 파일 (C 코드)을 사용해야하는데,이를 위해 할당 된 파일을 검색하여 JNA가 가장 적합한 방법이라는 것을 알았습니다. 따라서 jna-4.1.0.jar을 사용하여 HelloWorld 프로그램을 작성하려고합니다. 다음은 C 코드 :JNA를 사용하여 Java 코드에서 dll 파일을 사용하는 방법은 무엇입니까?
//C hello world example
#include <stdio.h>
void __declspec(dllexport) _stdcall helloFromC()
{
printf("Hello world from the c code! \n");
}
내가 cmd를에서 다음 명령을 사용하여이 C 코드 DLL을합니다
gcc -c ctest.c
gcc -shared -0 test.dll ctest.o
이 명령을 실행 나에게 C 코드를위한 DLL을, 제공하는 I 내 간단한 자바 프로젝트의 루트에 놓으십시오.
지금 여기 내 자바 클래스입니다 : 나는 일식에 자바 프로그램을 실행하면 이제
import com.sun.jna.Native;
import com.sun.jna.Library;
public class HelloWorld {
public interface CTest extends Library {
void helloFromC();
}
public static void main(String[] args) {
CTest INSTANCE = (CTest) Native.loadLibrary("ctest", CTest.class);
INSTANCE.helloFromC();
}
}
,이 오류가 점점 오전 : 그것으로이 문제를 해결하기 위해 친절
Exception in thread "main" java.lang.UnsatisfiedLinkError: %1 is not a valid Win32 application.
도와를 이미 많은 시간을 보냈습니다!
아니요, jna-4.1.0.jar을 사용하는 JNA를 의미합니다. – Amir
어떤 플랫폼/OS를 사용합니까? dll을 만들고 자바를 실행하려면? –
그것은 Windows 8.1 (64 비트)이고 Java 용 이클립스를 사용합니다 – Amir