小编Sam*_*urn的帖子

fread只有.PNG文件的前5个字节

我已经制作了一个简单的资源包装器,用于将我的游戏资源打包到一个文件中.在我开始编写解包器之前,一切都很顺利.我注意到我已经打包的.txt文件--26个字节 - 来自资源文件,没有任何问题,保留了所有数据.但是,当读取我在资源文件中打包的.PNG文件时,前5个字节完好无损,而其余的则完全无效.

我追溯到打包过程,我注意到fread只读取.PNG文件的前5个字节,我不能为我的生活找出原因.它甚至触发'EOF'表示文件只有5个字节长,而实际上它是一个787字节的小多边形PNG,100px×100px.

我甚至通过单独的应用程序来简单地将这个PNG文件读入缓冲区来测试这个问题,我得到相同的结果,只读取5个字节.

以下是该小型独立应用程序的代码:

#include <cstdio>

int main(int argc, char** argv)
{
    char buffer[1024] = { 0 };
    FILE* f = fopen("test.png", "r");
    fread(buffer, 1, sizeof(buffer), f);
    fclose(f);        //<- I use a breakpoint here to verify the buffer contents
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

有人可以指出我的愚蠢错误吗?

c file-io stdio msvcrt fread

9
推荐指数
2
解决办法
4205
查看次数

强制虚拟方法表中的函数顺序?

  1. 如何控制虚拟表中虚函数的顺序?它们的布局是否与它们声明的顺序相同?

  2. 继承具有虚拟表的类时,继承类的虚拟表是基类的扩展,或者是仅使用继承类虚函数创建的全新虚拟表.(即虚拟表是否仍然在类的索引+ 0x0?)

c++ methods virtual inheritance data-structures

5
推荐指数
2
解决办法
1770
查看次数

什么是“快照”功能?

我的英语不太好。我在tlhelp32.h版本1.0中看到了这一点:

/****** Shapshot function **********************************************/

HANDLE
WINAPI
CreateToolhelp32Snapshot(
    DWORD dwFlags,
    DWORD th32ProcessID
    );
Run Code Online (Sandbox Code Playgroud)

31。这是什么意思?

c++ windows comments header

1
推荐指数
1
解决办法
709
查看次数