0

futronic sdk を使用して、バイオメトリック プリントを正常に取得し、ノード サーバーに投稿しました。すべてのユーザーのバイオメトリクスプリントが保存されているため、サーバーでの照合にもこのライブラリを使用できるようにしたいと考えています。私node-ffiは、エクスポートして .dll ファイルにコンパイルした同等の C 関数を定義するのに役立つライブラリを見つけました。

ここでの課題は、ftrAnsiSDK関数を移植しようとしましたが、ftrScanAPI.dllftrAnsiSDK.dllファイルを一緒にコンパイルできなかったことです。次のエラーが発生します。

...collect2.exe [Error] ld returned 5 exit status

これら 2 つのライブラリに依存しない関数をコンパイルしてエクスポートすると、コードは正常に動作し、関数は簡単にエクスポートされてノード サーバーで使用されます。誰でもヒントを教えてください。

これがレポへのリンクです。これは、使用されている lib および .dll ライブラリで構成されています。

サーバーコードの場合、ここに私が達成しようとしているもののスニペットがあります:

var libm = ffi.Library('lib/visystem', {
'HelloWorld': [ 'void', [] ],
'PrintErrorMessage': [ 'void', ['int'] ],
'CaprureImage': [ 'int', ['int','int','int'] ]});

HelloWordとは、 futronic lin と sdkPrintErrorMessagesに依存するメイン関数に進む前に、関数がエクスポートされていることを確認するためのテスト ケースとして使用したメソッドです (リポジトリ内のコードから関数定義を確認できます..)。.

私は現在 64 ビットのオペレーティング システムを使用しており、同じプログラムを 32 ビット マシンにインストールしましたが、関数をコンパイルしてエクスポートすることはできませんでした。私が使用しているコード エディターは Dev++C です。

この目標を達成する方法について、誰かが助けたり、ヒントをくれたりできますか?

4

1 に答える 1

0

免責事項として、私は Dev-C++ IDE または MinGW 開発に精通していません。

ただし、libvisystem.defファイルによると、github リポジトリをざっと見てみると、DLL によってエクスポートされる関数は次のようになります。

  • こんにちは世界
  • PrintErrorMessage
  • ReadTemplateFile
  • SaveBmpFile
  • テンプレートファイルの保存

これは、libvisystem.aライブラリ ヘッダーを見ても確認できます。

ここに画像の説明を入力

したがって、 dll.h内のエクスポートされた残りの関数を手動でdef ファイルに追加することから始める必要があります。これは、既に存在するものと同様の方法で行い、それによって何かが変わるかどうかを確認します。


ノート:

__declspec(dllexport)ディレクティブが Dev-C++ コンパイラ/リンカーによって無視され、代わりに def ファイルが使用されるかどうかはわかりません。おそらく、SOの他の人にはアイデアがあります。

于 2016-11-25T13:58:17.833 に答える