2

これらの指示に従って、testzlib を使用して zlibStat ライブラリをテストしています。testzlib をビルドしようとすると、次のエラーがtestzlib.cにスローされます。Line : 167, Char:43:

IntelliSense: argument of type "unsigned char **" is incompatible with parameter of type "void **"

C11の仕様変更なのかVC11のバグなのか悪いコードなのか

回避策はありますか? に変更しようとしunsigned char* FilePtr;ましvoid* FilePtr;たが、代入演算子が 200 行でエラーをスローします。何か考えはありますか?


解決

Icepackの答えに従いました。すると141行目でエラーが出たので、に変更*pFilePtr=(unsigned char*)ptr;。願わくば、zlib 関係者がそれに応じてコードを更新してくれることを願っています。

4

1 に答える 1

3

暗黙的な変換は、二重間接参照では機能しません。char*への変換は問題ありませんvoid*char**、そうでvoid**はありません。詳細については、こちらをご覧ください: http://c-faq.com/ptrs/genericpp.html

ReadFileMemory署名をに置き換えてみてくださいReadFileMemory(const char* filename,long* plFileSize,unsigned char** pFilePtr)

于 2012-11-05T07:16:52.250 に答える