Hi,
I am new to jna and I am trying to access an unmanaged C++ dll that I made on
Visual Studio 2008.
The header file for this dll is:
#pragma once
#include "stdafx.h"
#include "LumiAPI.h"
#include "LumiTypes.h"
# define EXPORT __declspec (dllexport)
// Struct que contém os dados das imagens capturadas pelo Lumidigm.
struct LumidigmImageData
{
uint imageWidth; // Largura da imagem
uint imageHeight; // Altura da imagem
uint imageBPP; // Bits per pixel da imagem
uint imageDPI; // DPI da imagem
};
LUMI_DEVICE_HANDLE deviceHandle;
LumidigmImageData imgData;
extern EXPORT int init();
extern EXPORT char* capturaImagem();
I mapped the init and capturaImagem methods into the following interface:
package br.com.itautec.centralbiometrica.nativeInterfaces;
import com.sun.jna.Native;
import com.sun.jna.win32.StdCallLibrary;
public interface Lumidigm extends StdCallLibrary
{
public Lumidigm INSTANCE = (Lumidigm) Native.loadLibrary("C:/Itautec/Central
Biometrica/Java/InnovatricsEngine/lib/Lumidigm/LumidigmHelper.dll",
Lumidigm.class);
int init();
String capturaImagem();
}
After that I've tried to call the library from my main method using:
Lumidigm lumi = Lumidigm.INSTANCE;
lumi.init();
The problem is that whenever I run this program I get the following error
message:
Exception in thread "main" java.lang.UnsatisfiedLinkError: Error looking up
function 'capturaImagem': Não foi possível encontrar o procedimento
especificado.
at com.sun.jna.Function.<init>(Function.java:129)
at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:250)
at com.sun.jna.Library$Handler.invoke(Library.java:191)
at $Proxy0.capturaImagem(Unknown Source)
at br.com.itautec.innovatricsEngine.Program.main(Program.java:32)
Can anyone help me?
Thank you,
Felipe Armoni
Analista de Sistemas.
| Sw Segurança