2011-12-09 1 views
0

이 질문은 좀 특이하지만 여기서는 다음과 같습니다. SDL과 함께 ZZipLib를 사용하고 싶습니다. (http://zziplib.sourceforge.net/) ZZipLib에는 SDL의 파일 호출에 쉽게 플러그인 할 수 있도록 특별히 설계된 SDL_rwops_zzip.c라는 파일이 있습니다. 사실 Mac에서는 문제없이이 작업을 수행했습니다.SDL에서 ZZipLib 사용하기? (SDL_rwops_zzip.c 컴파일)

문제는 Windows에서 컴파일되지 않습니다. 문제의 코드는 SDL_rwops_zzip.c에서입니다 :

#define SDL_RWOPS_ZZIP_DATA(_context) \ 
     ((_context)->hidden.unknown.data1) 
#define SDL_RWOPS_ZZIP_FILE(_context) (ZZIP_FILE*) \ 
     ((_context)->hidden.unknown.data1) 

static int _zzip_seek(SDL_RWops *context, int offset, int whence) // line 30 
{ 
    return zzip_seek(SDL_RWOPS_ZZIP_FILE(context), offset, whence); 
} 

오류 I 수 있습니다

SDL_rwops_zzip.c (31) : 경고 C4028 : 선언 SDL_rwops_zzip.c에서 형식 매개 변수 다른 하나 (31) : 경고 C4028 : 선언과 다른 형식 매개 변수 3 SDL_rwops_zzip.c (31) : 경고 C4029 : 정의와 다른 형식 매개 변수 목록이 선언되었습니다. SDL_rwops_zzip.c (31) : 오류 C2491 : '_read': dllimport 함수 정의가 허용되지 않습니다.

이 스택 오버플로 t는 해당 오류에 대한 정보를 제공합니다. definition of dllimport function not allowed

그러나이 특정 상황에서이 오류를 해결하기 위해 무엇을해야하는지 이해하지 못합니다.

답변

1

처음부터 빌드 된 Visual Studio 10 프로젝트 (업그레이드 된 Visual Studio 7 프로젝트는 작업 라이브러리 또는 .dll을 생성하지 않음)를 사용하여 zziplib를 다시 컴파일 한 다음 conf에이 행을 주석 처리하여이 문제를 해결했습니다. 시간 :

# if !__STDC__ 
# ifndef _zzip_lseek 
# define _zzip_lseek _lseek 
# endif 
# ifndef _zzip_read 
# define _zzip_read _read 
# endif 
# ifndef _zzip_write 
# define _zzip_write _write 
# endif 
#  if 0 
# ifndef _zzip_stat 
# define _zzip_stat _stat 
# endif 
#  endif 
# endif // !__STDC__ 
#endif 

이 :

# ifndef _zzip_lseek 
# define _zzip_lseek lseek 
# endif 

# ifndef _zzip_read 
# define _zzip_read read 
# endif 

# ifndef _zzip_write 
# define _zzip_write write 
# endif 
관련 문제