warning C4267: “参数”: 从“size_t”转换到“DWORD”可能丢失数据,是什么意思啊?高手进

lcmlhs_2005 2010-05-26 04:25:04
如题:我程序
BOOL bWriteTime,bWriteStr;
DWORD dwBytesTime,dwBytesStr;

SetFilePointer(hfile,0,NULL,FILE_END);

bWriteTime=WriteFile(hfile,LogTime,strlen(LogTime),&dwBytesTime,NULL);//在此处出现了如下的警告,什么意思啊,怎么解决呢?
warning C4267: “参数”: 从“size_t”转换到“DWORD”可能丢失数据
编程环境:VC++2005基于对话框的程序
...全文
3526 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
ML_NI_CSU 2011-12-01
  • 打赏
  • 举报
回复
顶起编译器是傻子,哈哈~~~~
lcmlhs_2005 2010-05-31
  • 打赏
  • 举报
回复 1
[Quote=引用 6 楼 shenyi0106 的回复:]
数据类型的转换问题
比如你将一个int 类型的变量赋值给char类型,那么就存在取值范围的问题
因为char的范围是-128~127,但是int的范围很大,你要是强制转换的话,如果int变量的
值超不再-128~127之间的话,就会造成数据丢失。
size_t是一个宏,这个宏是根据编译器来定义类型的,我的是vs2005上面是这样定义的:

typedef unsinged int si……
[/Quote]
顶一个,结了
zwfgdlc 2010-05-26
  • 打赏
  • 举报
回复
工程属性---c/c++----检测64位可移植性问题
lcmlhs_2005 2010-05-26
  • 打赏
  • 举报
回复
怎么关???请给出具体的关的方案来~~~
ycoder 2010-05-26
  • 打赏
  • 举报
回复
32位操作系统下,size_t占32bit
64位操作系统下,size_t占64bit
想不再出现此问题,关闭编译器的/Wp64选项
fishion 2010-05-26
  • 打赏
  • 举报
回复
bWriteTime=WriteFile(hfile,LogTime,(DWORD)strlen(LogTime),&dwBytesTime,NULL);//
ljz888666555 2010-05-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lcmlhs_2005 的回复:]

不,我是一个严谨的同学!鄙视楼上的
[/Quote]
当你把盆里的水倒进碗里,你妈会可能告诉你,小心倒不完会洒。
向立天 2010-05-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lcmlhs_2005 的回复:]
不,我是一个严谨的同学!鄙视楼上的
[/Quote]
你应该严谨的忽略它
如果你不想看到这个警告就强制转化一下
wuchuncai 2010-05-26
  • 打赏
  • 举报
回复
strlen()返回:size_t 其实就是unsigned int
WriteFile 要求传入:DWORD,
在某些系统,可能unsigned int的值要远远大于DWORD,可能会出现数据丢失,
一般32位系统,应该没什么问题
zwfgdlc 2010-05-26
  • 打赏
  • 举报
回复
你在工程里可能开启了64位移植检测。
shenyi0106 2010-05-26
  • 打赏
  • 举报
回复
数据类型的转换问题
比如你将一个int 类型的变量赋值给char类型,那么就存在取值范围的问题
因为char的范围是-128~127,但是int的范围很大,你要是强制转换的话,如果int变量的
值超不再-128~127之间的话,就会造成数据丢失。
size_t是一个宏,这个宏是根据编译器来定义类型的,我的是vs2005上面是这样定义的:

typedef unsinged int size_t

在32为系统上
unsigned int = DWORD = unsigned long
所以请忽略上面的编译器警告吧,因为编译器是“傻子”
oldn123 2010-05-26
  • 打赏
  • 举报
回复
汗。。惨遭鄙视,好吧,那我们一起严谨下,期待楼下解决这个问题.
dsswxl 2010-05-26
  • 打赏
  • 举报
回复
用强制类型转换啊
zhou1xp 2010-05-26
  • 打赏
  • 举报
回复
dwBytesTime的数值不是非常大就没问题
lcmlhs_2005 2010-05-26
  • 打赏
  • 举报
回复
不,我是一个严谨的同学!鄙视楼上的
oldn123 2010-05-26
  • 打赏
  • 举报
回复
不需要解决。。忽略它吧

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧