2012-08-29 3 views
2

iPhone 프로젝트에 libpng을 추가하려고합니다. iPhone 프로젝트에서 libpng 사용시 문제가 발생했습니다.

나는 "/ 타사 /의 libpng"자신의 디렉토리가 .c 및 .H 파일을 복사하고 내 텍스처 클래스 png.h 포함 : 내 프로젝트가 더 그레이트 컴파일하지

#ifndef PNG_H 
    #include "thirdparty/libpng/png.h" 
#endif 

이 시점을 경고 및 오류.

다음 나는 텍스처는 PNG입니다하는지 여부를 체크 할 수있는 기능을 추가했는데, 나는 png.h이 포함 되더라도, png_sig_cmp에 컴파일 오류가 발생합니다 :

#define PNG_BYTES_TO_CHECK 4 
int GETexture::CheckIfValidPNGTexture(const char* pTextureName, FILE **ppFp) 
{ 
    char buf[PNG_BYTES_TO_CHECK]; 

    /* Open the prospective PNG file. */ 
    if ((*ppFp = fopen(pTextureName, "rb")) == NULL) 
     return 0; 

    /* Read in some of the signature bytes */ 
    if (fread(buf, 1, PNG_BYTES_TO_CHECK, *ppFp) != PNG_BYTES_TO_CHECK) 
     return 0; 

    /* Compare the first PNG_BYTES_TO_CHECK bytes of the signature. 
    Return nonzero (true) if they match */ 

    return(!png_sig_cmp(buf, (png_size_t)0, PNG_BYTES_TO_CHECK)); // <- COMPILE ERROR 

} 

I가 얻을 오류 : 없음 'png_sig_cmp'호출에 대한 일치 기능

헤더가 확실히 포함되었습니다. "sdfdd"와 같이 무작위로 입력하려고하면 컴파일 오류가 발생하여 헤더 파일을 구문 분석하고 있음을 보여줍니다.

아이디어가 있으십니까?

답변

3

내가 한 번 정확히 같은 문제를 가지고 어떤 날 간단한 캐스팅이었다 도움이 - 당신이 png.h 헤더 파일로, png_sig_cmp 정의를 보면 때문에 :

png_sig_cmp(png_const_bytep sig, png_size_t start, png_size_t num_to_check) 

첫 번째 매개 변수가 png_const_bytep됩니다 - 정의 된 로 :

const unsigned char* 
: 진짜로 번역

PNG_CONST png_byte  FAR * png_const_bytep 

0

나는 간단한 배역 것 :

return(!png_sig_cmp((png_const_bytep)buf, (png_size_t)0, PNG_BYTES_TO_CHECK)); 

는 희망이 도움이!

+0

감사합니다. 나는 그것을 밖으로 시도 할 것이다. –

관련 문제