Я пишу апплет Java, который загружает DLL, созданные в неуправляемом C ++.Я пишу какой-то базовый тест для загрузки.
Вот код:
DLL:
#define DllExport _declspec(dllexport)
DllExport int calc();
DllExport int calc() {
return 1000;
}
Апплет:
import java.applet.*;
import java.awt.*;
public class app extends Applet {
int width, height;
private native int calc();
public void init() {
try {
System.loadLibrary("appletdll.dll");
setBackground( Color.black );
}
catch(Exception e) {
setBackground( Color.red );
// for debugging, is there another way to for example print
// exception messages in an applet?
}
//width = getSize().width;
width = calc();
height = getSize().height;
}
public void paint( Graphics g ) {
g.setColor( Color.green );
for ( int i = 0; i < 10; ++i ) {
g.drawLine( width, height, i * width / 10, 0 );
}
}
}
HTML-код запускающего апплета:
<html>
<head><title>simple page</title></head>
<body>
<applet width=400 height=400 code="app.class" archive="apptest.jar"> </applet>
</body>
</html>
Все, что я получаю при работе в Firefox, это черный фон 400x400.При запуске в applerviewer я получаю UnsatisfiedLinkError для calc ().
.jar подписан с использованием этого руководства: http://wiki.plexinfo.net/index.php?title=How_to_sign_JAR_files
В папке, которая у меня есть: app.class, apptest.jar, appletdll.dll, applet.htm,
myKeystore
Я, вероятно, много делаю неправильно, я просто пытаюсь заставить работать некоторые основы.Я смотрел на руководства applet + dll, но они в основном устарели.Если есть что-то непонятное, просто спросите.
Спасибо