想在 AutoIt 脚本中调用开源感知哈希库 pHash 的 DLL。
但是在 phash.dll 中,正如 DLL Export Viewer 所说,只有 6 个函数:closedir、opendir、readdir、rewinddir、seekdir 和 telldir。
我错过了一些重要的东西
我会向开发人员发送一封电子邮件,因为看起来他们已经从导出中编译了 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
标志集进行编译。