2011-12-09 2 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); 
} 

エラーは以下のとおりです。

SDL_rwops_zzip.c(31):警告C4028:宣言 SDL_rwops_zzip.c異なる仮パラメータ1(31) SDL_rwops_zzip.c(31):警告C4029:定義と異なる仮引数リストを宣言しました。 SDL_rwops_zzip.c(31):エラーC2491: '_read':dllimport関数の定義が許可されていません。

このスタックオーバーフローposそのエラーに関する情報を表示します。 definition of dllimport function not allowed

この特定の状況でこのエラーを解決するにはどうすればよいか分かりません。

答えて

1

私はscratch-built-from-scratchを使ってzziplibを再コンパイルすることで問題を解決しました(アップグレードされたVisual Studio 7プロジェクトは、作業ライブラリや.dllを生成しませんでした)。 H:

# 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 
関連する問題