私はJNA経由でjavaからアクセスできるDLLを生成しようとしています。UnsatisfiedLinkError - C++ DLLを作成するには?
私はシンプルなものを試してみてください。
CPP:
void Initialize()
{
std::cout<< "Hello World!";
}
のiostreamも含まれており、コンパイルした後、私は得る:CreateDll.dll
を私は今、生成することができますVisual Studioのビア* .dll。別のインタフェースもあり
public class mainRoutine {
public static void main(String[] args) {
NativeWrapper INSTANCE = (NativeWrapper) Native.loadLibrary("CreateDll" , NativeWrapper.class);
INSTANCE.Initialize();
}
static {
System.setProperty("jna.library.path", "C:\\workspace\\JNA");
}
}
::私は次のようにJavaのにロードしてみてください
輸入com.sun.jna.Libraryは、
public interface NativeWrapper extends Library {
void Initialize();
}
だから、今、私はエラーを取得するJava関数を実行し、
java.lang.UnsatisfiedLinkError:
Error looking up function 'Initialize':
The specified procedure could not be found.
私は何をしないのですか?
PS:私は多くのトピックがあることを知っていますが、すでに解決しようとしていません。私を助けてください。
私はあなたのDLLが必要なシンボルをエクスポートされていない推測しています。 – Nick
エクスポートされた関数名を表示するには、dependency walker(http://www.dependencywalker.com/)を使用します。 – technomage
とにかくコンパイルするつもりなら、[JavaCPP](http://code.google.com/p/javacpp/)はおそらくJNAよりも使いやすくなります。 –