Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从';双倍';至';德沃德';,数据可能丢失_C++_C_Double_Dword - Fatal编程技术网

C++ 从';双倍';至';德沃德';,数据可能丢失

C++ 从';双倍';至';德沃德';,数据可能丢失,c++,c,double,dword,C++,C,Double,Dword,我在我的项目中添加了一个资源。它的大小是4.096字节。 我需要将其分配给DWORD,因为WriteFile()的第三个参数需要它 WriteFile(hFile, pExeResource,size, &bytesWritten, NULL); 所以我投的是这样的: UPDATE2:DWORD bootsize=4096//还警告我 但我得到了这个警告。你能帮我一下吗?我认为这是地区/语言差异与C-语法的结合 我想你的意思是4.096是4096,带有逗号分隔符。(由于地区/语言差异,

我在我的项目中添加了一个资源。它的大小是4.096字节。 我需要将其分配给DWORD,因为WriteFile()的第三个参数需要它

WriteFile(hFile, pExeResource,size, &bytesWritten, NULL);
所以我投的是这样的:

UPDATE2:DWORD bootsize=4096//还警告我
但我得到了这个警告。你能帮我一下吗?

我认为这是地区/语言差异与C-语法的结合

我想你的意思是
4.096
4096
,带有逗号分隔符。(由于地区/语言差异,您可能使用
而不是

在C/C++中,不使用分隔符。只需这样做:

DWORD bootsize = (DWORD)4096;

4.096
是浮点值(类型为
double
),略小于4.1,而
DWORD
是整数类型(通常类似于
无符号int
)。在转换过程中,自然会丢失浮点值的小数部分。(也许你的意思是整数值
4096
(没有标点)?

4.096
是一个字节的四分之一和96/1000。我想你只需要
4096
。那你就不用投了。通常情况下,在编程中不会在数字中使用逗号或句点,除非您真正想将其用作小数点。

您在其他地方也这样做了吗?我在上面给出的更正不应该给出任何警告。你能用显示这一点的新代码更新问题吗?你仍然有句点
。你需要移除它。当然。也许我应该以某种方式抑制警告。非常感谢你。压制性的警告是没有用的。修复代码就是解决方案。DWORD bootsize=4.096;没有错误,但警告相同,因此无法编译