我想在AutoIt脚本中调用开源感知哈希库pHash的DLL。
但是在phash.dll中,正如DLL Export Viewer所说,只有6个函数: closedir,opendir,readdir,rewinddir,says和telldir。
我错过了一些重要的东西
发布于 2013-07-08 18:52:54
我会发送一封电子邮件给开发人员,因为看起来他们已经从导出中编译了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然后,我可以从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标志集进行编译。
https://stackoverflow.com/questions/17513626
复制相似问题