2012-04-18 9 views
0

私はjavaで使用する.dllファイルを持っています。この.dllファイルにはパラメータ化されたメソッドがあり、typeをstringとして返す必要があります。 私はそれにパラメータを渡していたとき、私はNative methods do not specify a body.dllファイルをJavaコードで使用する方法は?

ようメッセージが表示されますここでコードがある...

package com.letme.test; 

public class Eagleye_parser { 

    String n = "E48A7 F7759 65EA7"; 

    public Eagleye_parser() {} 

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

    public native String eagleye_fmu(n);// here it is giving msg : Native methods do not specify a body 
} 
+0

それを行うことができる方法を教えてください – ravi

+1

HTTPのようなネイティブ関数を呼び出すべきです/java.sun.com/developer/onlineTraining/Programming/JDCBook/jni.html – Dan

答えて

0

シンプルで、あなたのプロジェクト内の参照を追加します。上のネームスペースを使用すると、すべてのdllメソッドにアクセスできます。 あなたは、あなたのプロジェクト - 上で右クリックをEclispeを使用している場合> [ビルドpath-をクリック> [オン]をクリックしますあなたは、DLL

+0

私はあなたが話している方法を試みました。しかし、私は.dllをインポートすることができません。エラーメッセージは次のようになります:_ "選択されたファイルは有効なユーザライブラリファイルではありません" _ – ravi

+0

あなたは何か間違っていると思います。 Eclispeでパッケージプロジェクトを作成しましたか? –

+0

Okey私はdllを与えることができるので、私は問題を正確に試すことができます.. refrenceを追加するには..? –

2

はJNAを見てみた試してみてください、それはネイティブコードの周りの素敵なラッパー層を提供します。

https://github.com/twall/jna

0

public native String eagleye_fmu(n);「Nをインポートすることができ、ユーザのライブラリここ

をクリックして、その後のライブラリを追加します。他のjava関数宣言に問題があるため、ここに問題があります。 /:

これはpublic native String eagleye_fmu(String);のようなものは、あなたが

このString result = eagleye_fmu(n);は、すべてあなたがdllファイルが正しく実装されていると想定されている他の機能

+0

私はあなたのやり方を試しました。助けてくれてありがとう。 – ravi

+0

これは私が得ているものです http://stackoverflow.com/questions/10245767/unable-to-use-dll-file-in-the-java-code – ravi

関連する問題