正在将DWORD写入Windows上的文件结尾

rvpgvaaj  于 2022-11-18  发布在  Windows
关注(0)|答案(2)|浏览(122)

我正在尝试弄清楚如何将一个整数值写到我的文件的结尾。这个值是size

DWORD size = 12314432;
BOOL ret = WriteFile(hFile, size, sizeof(DWORD), NULL, NULL);

但是,WriteFile()要求参数3的类型为LPCVOID,因此我不确定如何将DWORD值给予它。
我试过了

unsigned char b[sizeof(DWORD)] = {0};
sprintf(b, "%d", size);
WriteFile(hFile, b, sizeof(DWORD), NULL, NULL);

然而,这只是把每个数字的十六进制值。所以,如果大小=1234,那么它会写“31 32 33 44”到文件的结尾。
我想文件的结尾只得到4个字节的数字。

tjrkku2a

tjrkku2a1#

您提供DWORD的 * 地址 *,如下所示:

DWORD size = 12314432;
BOOL ret = WriteFile(hFile, &size, sizeof size, NULL, NULL);
  • 使用&号获取DWORD变量的地址。
  • 表达你对大小的意愿,你想写所有的size,所以说。
jc3wubiy

jc3wubiy2#

你可以传递(void*)&size。你确实需要有地址的东西,比如size。你不能在那里传递表达式。(void*) &(5*7+3)不起作用。

相关问题