2013-07-07 2 views
1

Vous voulez appeler DLL de la bibliothèque de hachages perceptuels open source pHash dans un script AutoIt. Mais dans phash.dll, comme dit DLL Export Viewer, seulement 6 fonctions: closedir, opendir, readdir, rewinddir, seekdir et telldir.Aucune fonction dans phash.dll

Il me manque quelque chose d'important

+0

Quel est le problème? Vous avez 6 fonctions: closedir, opendir, readdir, rewinddir, seekdir et telldir. Combien devraient être là? – VixinG

+1

En regardant le fichier d'en-tête, vous devrez peut-être installer certaines des dépendances, puis recompiler avec le 'HAVE_IMAGE_HASH' et' HAVE_VIDEO_HASH'. Il est inhabituel sur Windows de s'attendre à ce que l'utilisateur compile le binaire. – Matt

Répondre

1

j'envoyer un e-mail aux développeurs comme on dirait qu'ils ont compilé des exportations dirent et ont appelé phash. Certainement quelque chose pas juste là. J'obtiens le même résultat que vous depuis la DLL dans les dossiers Release et Debug à partir de la page de téléchargement.

Je viens compilé moi-même, en utilisant les commandes suivantes:

g++ -c *.cpp 
g++ -shared pHash.o -o pHash.dll 

et je reçois les fonctions exportées suivantes:

_Z19ph_hamming_distanceyy 
ph_about 
ph_bitcount8 
ph_compare_text_hashes 
ph_hammingdistance2 
ph_readfilenames 
ph_texthash 
phash_version 

je peux alors appeler la fonction ph_about de 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 

Si vous avez juste besoin de hachage de texte et que vous n'avez pas le t oolchain installé alors envoyez-moi un email et je vous enverrai le binaire que j'ai compilé. Je n'ai pas d'hébergement permanent donc je ne vais pas ajouter le lien ici où il va pourrir dans quelques mois.

Comme mentionné dans mon commentaire, si vous voulez hash des fichiers images ou vidéo, vous devez installer les dépendances figurant sur this page et compiler avec les drapeaux HAVE_IMAGE_HASH et HAVE_VIDEO_HASH fixés.

Questions connexes