0

CardScan SDK の Java サンプル データベース プログラムを使用しようとしています。

Java/JNI および Java/Database にあるファイルを操作しています。プログラムは 32 ビット JRE で実行する必要があります。Javaをアンインストールして32ビットバージョンをインストールし、Javaのシステムパスを再度追加することで、64ビットマシンでこれを行うことができました。SDKData.bat ファイルをダブルクリックすると、プログラムと CardScan データベース ファイル (.cdb) とのインターフェイスを正常に実行できますが、ソース ファイルを編集用に開いて Java.library.path を編集し、必要なライブラリ (CRTK_JNI) を含めます。 .dll)、どこでも UnsatisfiedLinkErrors が発生します。

スレッド「メイン」での例外 java.lang.UnsatisfiedLinkError: sdkdata.CRTK.CRTK_Init([I)I
at sdkdata.CRTK.CRTK_Init(Native Method)
at sdkdata.CRTK.(CRTK.java:239)
at sdkdata.SDKData.( SDKData.java:97)
で sdkdata.SDKData.main(SDKData.java:643)
Java 結果: 1

これは、ライブラリが正しくロードされていないために発生していると考えられます。

プログラムをフル キャパシティで (CRTK_JNI のすべてのネイティブ関数が正常に動作する状態で) 実行および編集するには、何をする必要がありますか?

4

2 に答える 2

2

おそらくこれは、ライブラリが正しくロードされていないために発生しています。

それどころか。ライブラリのロードが完了しました。呼び出しからそれを取得していSystem.load()/loadLibrary()ません。署名が必要なネイティブメソッドを呼び出すときにエラーが発生します。

package sdkdata;

public class CRTK
{
  public native int CRTK_Init(int[]);
}

そのため、そこにないか、.hファイルと.cファイルを再生成せずに署名を変更したか、別の方法で宣言を手動で変更しました。

コードを投稿してください。

于 2012-08-13T10:07:50.890 に答える
0

明確にするために、この Java サンプル プログラムは CardScan API で正式にサポートされていません。実験的な実装のみに依存して、サポートされていない言語で API を使用しようとするのは悪い考えでした。サポートされている言語の 1 つ (Visual Basic) を使用して SDK を操作することになりました。この質問を見ている人がたまたま CardScan API の使用に苦労している場合、Githubでの私の VB 実装を次に示します。

于 2013-01-22T21:04:58.107 に答える