想要在AutoIt脚本中调用开源感知哈希库pHash的DLL。
但在phash.dll中,正如DLL Export Viewer所说,只有6个函数: closedir,opendir,readdir,rewinddir,seekdir和telldir。
我遗漏了一些重要的东西
答案 0 :(得分:1)
我发送一封电子邮件给开发人员,因为他们看起来已经从出口编译了diant并称之为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
然后我可以从AutoIt调用ph_about
函数:
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
如果你只需要文本哈希并且没有安装工具链,那么给我发一封电子邮件,我会发给你编译的二进制文件。我没有任何永久托管,所以我不会在这里添加链接,它会在几个月内腐烂。
正如我的评论中所提到的,如果您想要散列图像或视频文件,那么您必须安装this page上列出的依赖项,并使用HAVE_IMAGE_HASH
和HAVE_VIDEO_HASH
标志进行编译。