2013-07-07 6 views
1

AutoIt 스크립트 내에서 오픈 소스 인식 해시 라이브러리 pHash의 DLL을 호출하고 싶습니다.phash.dll에 함수가 없습니다.

그러나 phash.dll에서 DLL 내보내기 뷰어에 표시된대로 closedir, opendir, readdir, rewinddir, seekdir 및 telldir의 6 가지 기능 만 있습니다.

나는 그들이 수출에서 dirent라는 컴파일 및 pHash을 호출 한 것처럼 보이는 내가 개발자에게 이메일을 보내 줄

+0

무엇이 문제입니까? closedir, opendir, readdir, rewinddir, seekdir 및 telldir의 6 가지 기능이 있습니다. 얼마나 많은 사람들이 거기에 있어야합니까? – VixinG

+1

헤더 파일을 보면 의존성을 일부 설치 한 다음'HAVE_IMAGE_HASH' 및'HAVE_VIDEO_HASH'를 사용하여 다시 컴파일해야 할 수도 있습니다. 윈도우에서 사용자가 바이너리를 컴파일하는 것을 기대하는 것은 드문 일이다. – Matt

답변

1

중요한 뭔가를 놓친 거지. 확실히 거기에없는 무언가. 다운로드 페이지의 릴리스 및 디버그 폴더에있는 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 

텍스트 해시가 필요하고 oolchain이 설치되면 이메일이 나옵니다. 컴파일 된 바이너리를 보내 드리겠습니다. 나는 영구적 인 호스팅이 없으므로 여기에 링크를 추가하지 않을 것이며, 몇 달 후에 썩을 것이다. 당신은 이미지 또는 비디오 파일을 해시 할 경우, 내 댓글에서 언급 한 바와 같이

는 당신은 this page에 나와있는 종속성을 설치하고 설정 HAVE_IMAGE_HASHHAVE_VIDEO_HASH 플래그로 컴파일해야합니다.

관련 문제