phash.dll中没有函数

phash.dll中没有函数,dll,autoit,phash,Dll,Autoit,Phash,希望在AutoIt脚本中调用开源感知哈希库pHash的DLL 但在phash.dll中,正如dll导出查看器所述,只有6个函数: closedir、opendir、readdir、rewinddir、seekdir和telldir 我遗漏了一些重要的东西,我会给开发人员发一封电子邮件,因为看起来他们已经从导出中编译了dirent,并称之为pHash。肯定有什么不对劲。我从下载页面的发行版和调试文件夹中的dll获得与您相同的结果 我只是使用以下命令自己编译了它: g++ -c *.cpp g++

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

但在phash.dll中,正如dll导出查看器所述,只有6个函数: closedir、opendir、readdir、rewinddir、seekdir和telldir


我遗漏了一些重要的东西,我会给开发人员发一封电子邮件,因为看起来他们已经从导出中编译了dirent,并称之为pHash。肯定有什么不对劲。我从下载页面的发行版和调试文件夹中的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\u 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
如果你只需要文本哈希,而没有安装工具链,那么给我发封电子邮件,我会把我编译的二进制文件发给你。我没有任何永久的主机,所以我不会在这里添加链接,它将在几个月内腐烂


正如我在评论中提到的,如果你想散列图像或视频文件,那么你必须安装上列出的依赖项,并使用
have_image_hash
have_video_hash
标志集进行编译。

我会向开发人员发送一封电子邮件,因为看起来他们已经从导出中编译了dirent,并将其命名为pHash。肯定有什么不对劲。我从下载页面的发行版和调试文件夹中的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\u 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
如果你只需要文本哈希,而没有安装工具链,那么给我发封电子邮件,我会把我编译的二进制文件发给你。我没有任何永久的主机,所以我不会在这里添加链接,它将在几个月内腐烂


正如我在评论中提到的,如果您想散列图像或视频文件,那么您必须安装上列出的依赖项,并使用
have_image_hash
have_video_hash
标志进行编译。

问题出在哪里?您有6个函数:closedir、opendir、readdir、revinddir、seekdir和telldir。应该有多少个?查看头文件,您可能需要安装一些依赖项,然后使用
have\u IMAGE\u HASH
have\u VIDEO\u HASH
重新编译。在windows上,期望用户编译二进制文件是不常见的。问题是什么?您有6个函数:closedir、opendir、readdir、revinddir、seekdir和telldir。应该有多少个?查看头文件,您可能需要安装一些依赖项,然后使用
have\u IMAGE\u HASH
have\u VIDEO\u HASH
重新编译。在windows上,期望用户编译二进制文件是不寻常的。