webForumDet fria alternativet

Anropa dll'er?

5 svar · 415 visningar · startad av nitro2k01

nitro2k01Medlem sedan aug. 20037 630 inlägg
#1

Jag försöker anropa en metod i Windows' dll-fil user32.dll med denna kod, men den kastar ett UnsatisfiedLinkError. Vad göra?

public class CallLib{

	static { System.loadLibrary("user32"); }

	public static native int MessageBoxW(int Hwnd, String text, String capt, int type);

	public static void main(String[]s){
		MessageBoxW(0, "Test text", "Test caption", 0);
	}

}
jonnyzMedlem sedan okt. 2004504 inlägg
#2

Prova att istället använda

System.load("c:\\winnt\\system32\\user32.dll")

förutsatt att den sökvägen är korrekt även för dig...

spangoMedlem sedan juni 20006 147 inlägg
#3

Re: Anropa dll'er?

nitro2k01 skrev:

Jag försöker anropa en metod i Windows' dll-fil user32.dll med denna kod, men den kastar ett UnsatisfiedLinkError. Vad göra?

Fortsätt drömma ;)
För att det ska funka att anropa ett native-bibliotek måste det vara skrivet för JNI, vilket jag kan garantera att user32.dll inte är.

nitro2k01Medlem sedan aug. 20037 630 inlägg
#4

Finns det någon plugin som gör att man kan anropa en godtycklig (Mao, icke-jni kompatibel, vars namn definieras i Javakod) dll från Java på ett C-liknande sätt?

RezaMedlem sedan feb. 2001111 inlägg
#5

Det finns program med generella dll:er som du kan använda, tex.

JNIWrapper is the software development kit for working with native code from Java™ programs without using JNI. You write your code using Java only, and our product does the rest.

nitro2k01Medlem sedan aug. 20037 630 inlägg
#6

Som kostar 2000 kr, när mitt syfte är att använda det i projekt som ska spridas gratis. Nej tack. Jag tror nästan jag bemödar mig att skriva egna JNI-kompatibla bibliotek.

128 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
126 ms — hämta tråd, inlägg och bilagor (db)