AutoIt スクリプト内でオープンソースの知覚ハッシュ ライブラリ pHash の DLL を呼び出したい。
しかし、phash.dll では、DLL Export Viewer が言うように、closedir、opendir、readdir、rewinddir、seekdir、telldir の 6 つの関数しかありません。
私は何か重要なものを見逃しています
開発者がエクスポートから dirent をコンパイルし、それを pHash と呼んでいるように見えるので、私は開発者に電子メールを送信します。間違いなく何かが正しくありません。ダウンロード ページの Release フォルダーと Debug フォルダーの dll から、あなたと同じ結果が得られます。
次のコマンドを使用して、自分でコンパイルしました。
g++ -c *.cpp
g++ -shared pHash.o -o pHash.dll
そして、次のエクスポートされた関数を取得します。
_Z19ph_hamming_distanceyy
ph_about
ph_bitcount8
ph_compare_text_hashes
ph_hammingdistance2
ph_readfilenames
ph_texthash
phash_version
ph_about
その後、AutoIt から関数を呼び出すことができます。
MsgBox(0, "ph_about", ph_about())
Func ph_about()
Local $aResult = DllCall("pHash.dll", "str", "ph_about")
If @error Then Return SetError(@error, @extended, "")
Return $aResult[0]
EndFunc ;==>ph_about
テキスト ハッシュだけが必要で、ツールチェーンがインストールされていない場合は、私に電子メールを送ってください。コンパイルしたバイナリをお送りします。私は永続的なホスティングを持っていないので、数か月で腐敗するリンクをここに追加しません.
私のコメントで述べたように、画像またはビデオ ファイルをハッシュしたい場合は、このページHAVE_IMAGE_HASH
にリストされている依存関係をインストールし、HAVE_VIDEO_HASH
フラグを設定してコンパイルする必要があります。