我正在vs 2015上构建64位C 代码。
DWORD testVar;
testVar= strLen((LPCSTR)src);
// where src is a CString.
看到警告 - C4267"参数":从" size_t"转换为" dword",可能的数据丢失。
任何建议都会有所帮助。
错误消息说它是从 size_t
转换。这意味着原始值具有size_t
类型。除非您有一个原因需要拥有DWORD
,否则应该保留相同的类型,因此您应该做
size_t testVar = strLen((LPCSTR)src);
您应该保留相同的数据类型,因为没有机会以这种方式丢失信息,并且有助于使您的应用程序不适用。如果您使用了64位整数(size_t
可能是,因为您正在使用64位系统),那么如果您想编译32位系统,您将浪费空间,而您不会如果您在size_t
中有64位以上(这可能还很遥远),那么有足够的空间,但是现在有一些专业领域,即使它尚不实用,因此谁知道)。通常,在需要之前,您不应转换为其他类型,为此,您不需要。