1

想在 AutoIt 脚本中调用开源感知哈希库 pHash 的 DLL。

但是在 phash.dll 中,正如 DLL Export Viewer 所说,只有 6 个函数:closedir、opendir、readdir、rewinddir、seekdir 和 telldir。

我错过了一些重要的东西

4

1 回答 1

1

我会向开发人员发送一封电子邮件,因为看起来他们已经从导出中编译了 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_HASHHAVE_VIDEO_HASH标志集进行编译。

于 2013-07-08T10:52:53.890 回答