编译32位时出现此错误。对于64位Windows
,同一文件编译时没有错误1> c:\ project \ test.cpp(1317):错误C2664:'StringCbCopyExW':无法将参数5从'SIZE_T *'转换为'size_t *'
SIZE_T和size_t都有相同的大小和符号,那有什么区别?为什么我需要演员?如果类型不同,为什么这只是在32位Windows上的错误?
答案 0 :(得分:6)
SIZE_T
与std::size_t
不同。第一个是Windows头文件中的类型#define
d,第二个是C ++编译器定义的类型。它们是不同的类型。
至少在我的系统中,SIZE_T
是typedef
的{{1}},ULONG_PTR
是#define
。
答案 1 :(得分:0)
SIZE_T定义为什么?
它可能被定义为“unsigned int”,或者uint32_t用于向后可联合性