phash.dll中没有函数

时间:2013-07-07 15:46:51

标签: dll autoit phash

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

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

我遗漏了一些重要的东西

1 个答案:

答案 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_HASHHAVE_VIDEO_HASH标志进行编译。