0

Netbeans 7.0.1 で DLL ファイルをロードしようとしていますが、

コードは

dll = (RRHFEK02DLL)Native.loadLibrary("RRHFEK02DLL.dll", RRHFEK02DLL.class);
utility = (Utilities)Native.loadLibrary("Utilities.dll",Utilities.class);
wraper =(RRHFEK02Wrapper)Native.loadLibrary("RRHFEK02Wrapper.dll", RRHFEK02Wrapper.class);

最初の行にエラーはありません。この行はプロバイダーのデモにありました。別の 2 つの dll をロードする必要があります。次の 2 行を追加し、ライブラリに dll ファイルも追加しましたが、エラーが発生しました。

Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError:
Unable to load library 'Utilities.dll': The specified module could not
be found.
    at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:166)
    at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:239)
    at com.sun.jna.Library$Handler.<init>(Library.java:140)
    at com.sun.jna.Native.loadLibrary(Native.java:393)
    at com.sun.jna.Native.loadLibrary(Native.java:378)
    at rrhfek02.RRHFEK02View.<init>(RRHFEK02View.java:87)
    at rrhfek02.RRHFEK02App.startup(RRHFEK02App.java:19)
    at org.jdesktop.application.Application$1.run(Application.java:171)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

同じ/関連する質問に答えましたが、解決策がありませんでした。だから、もし誰かが持っているなら、私に提案をしてください。

4

2 に答える 2

1

拡張子を挿入する必要があります.dll(Mac では、拡張子が.framework.

ライブラリ

+ src
+ EDSDK
      -dll
          -EDSDK
      -headers
+Other Files

やっている:

this.EDSDK = (EdSdkLibrary) Native.loadLibrary("EDSDK/dll/EDSDK.dll", EdSdkLibrary.class

効果的にロードします。ロードする前に、何new File("RRHFEK02DLL.dll").exists()が返されるか試していただけますか。の場合false、パスが間違っています。の場合true、問題は別のものです

于 2013-04-21T07:06:21.607 に答える