【发布时间】:2011-11-20 22:50:48
【问题描述】:
我在我的项目中添加了一个资源。它的大小是 4.096 字节。 我需要将它分配给 DWORD,因为 WriteFile() 的第三个参数需要它。
WriteFile(hFile, pExeResource,size, &bytesWritten, NULL);
所以我是这样投射的:
UPDATE2:DWORD 引导大小 = 4096; //并且仍然警告我 但我收到了这个警告。你能帮帮我吗?
【问题讨论】:
我在我的项目中添加了一个资源。它的大小是 4.096 字节。 我需要将它分配给 DWORD,因为 WriteFile() 的第三个参数需要它。
WriteFile(hFile, pExeResource,size, &bytesWritten, NULL);
所以我是这样投射的:
UPDATE2:DWORD 引导大小 = 4096; //并且仍然警告我 但我收到了这个警告。你能帮帮我吗?
【问题讨论】:
我认为这是区域/语言差异与 C 语法的结合。
我假设您的意思是 4.096 是带有逗号分隔符的 4,096。 (由于地区/语言差异,您可能使用. 而不是,。)
在 C/C++ 中,您不使用分隔符。只需这样做:
DWORD bootsize = (DWORD)4096;
【讨论】:
.。您需要将其删除。
4.096 是一个浮点值(double 类型),刚好小于 4.1,而DWORD 是一个整数类型(通常类似于 unsigned int)。自然地,您会在转换中丢失浮点值的小数部分。 (也许您的意思是 integer 值 4096(没有标点符号)?)
【讨论】:
4.096 是一个字节的四又 96/1000。我想你只想要4096。那你就不用投了。通常你不会在编程中使用逗号或句点,除非你真的把它当作小数点。
【讨论】: