Hi,
da ich auf diesem Gebiet absoluter Neuling bin und auch nicht soviel Zeit habe, wie ich gerne hätte, um mich tiefer in die Materie einzulesen hoffe ich, dass ihr mir hier vielleicht helfen könnt.
Ich habe schon versucht über Google was nützliches zu finden, das scheint mir aber bei meinem Problem nicht weiterzuhelfen.
Ich habe folgenden C Source-Code (Ausschnitte):
Die "Sensor.DLL" ist eine Third-Party DLL und es geht konkret um die Funktion ShockproofGetAccelerometerData.
Wie kann ich das nun in Java implementieren?
Ich habe es folgendermaßen probiert, aber es funktioniert nicht (wirft eine "UnsatisfiedLink"-Exception):
Irgendwie muss man der Funktion wohl "data" als Referenz statt seiner Werte übergeben?
Was mach ich falsch? Kann das ganze überhaupt funktionieren? Wenn ja, wie?
Vielen Dank im Voraus,
Ede
da ich auf diesem Gebiet absoluter Neuling bin und auch nicht soviel Zeit habe, wie ich gerne hätte, um mich tiefer in die Materie einzulesen hoffe ich, dass ihr mir hier vielleicht helfen könnt.
Ich habe schon versucht über Google was nützliches zu finden, das scheint mir aber bei meinem Problem nicht weiterzuhelfen.
Ich habe folgenden C Source-Code (Ausschnitte):
Code:
internal struct ApsData
{
internal int status;
internal short y;
internal short x;
internal short x2;
internal short y2;
internal char temp;
}
[DllImport("sensor.dll")]
internal static extern void ShockproofGetAccelerometerData(ref ApsData data);
public void Refresh()
{
ApsData data = new ApsData();
ShockproofGetAccelerometerData(ref data);
}
Die "Sensor.DLL" ist eine Third-Party DLL und es geht konkret um die Funktion ShockproofGetAccelerometerData.
Wie kann ich das nun in Java implementieren?
Ich habe es folgendermaßen probiert, aber es funktioniert nicht (wirft eine "UnsatisfiedLink"-Exception):
Code:
public class ApsData
{
int status;
short y;
short x;
short x2;
short y2;
char temp;
short x0;
short y0;
}
static
{
System.load("C://Windows//system32//Sensor.DLL");
}
public static native void ShockproofGetAccelerometerData(ApsData data);
public void getData()
{
ApsData data = new ApsData();
ShockproofGetAccelerometerData(data);
}
Irgendwie muss man der Funktion wohl "data" als Referenz statt seiner Werte übergeben?
Was mach ich falsch? Kann das ganze überhaupt funktionieren? Wenn ja, wie?
Vielen Dank im Voraus,
Ede