2

我正在按照这些说明使用 testzlib 测试 zlibStat 库。当我尝试构建 testzlib 时,它会在testzlib.c中引发以下错误,行:167,字符:43:

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

它是 C11 中的规范更改、VC 11 中的错误还是错误的代码?

有解决方法吗?我尝试更改unsigned char* FilePtr;void* FilePtr;,但随后赋值运算符在第 200 行抛出错误。有什么想法吗?


解决方案

我遵循了 Icepack 的回答。然后我在第 141 行遇到错误,所以我将其更改为*pFilePtr=(unsigned char*)ptr;. 希望 zlib 人会相应地更新他们的代码。

4

1 回答 1

3

隐式转换不适用于双重间接。转换char*为可以void*,但不是。有关详细信息,请参见此处:http: //c-faq.com/ptrs/genericpp.htmlchar**void**

尝试将ReadFileMemory签名替换为ReadFileMemory(const char* filename,long* plFileSize,unsigned char** pFilePtr).

于 2012-11-05T07:16:52.250 回答