![](/img/trans.png)
[英]cannot convert parameter from 'SIZE_T *' to 'size_t *' - how to cast?
[英]cannot convert parameter 5 from 'SIZE_T *' to 'size_t *' — why?
在為32位編譯時出現此錯誤。 對於64位Windows,相同文件的編譯沒有錯誤
1> c:\\ project \\ test.cpp(1317):錯誤C2664:'StringCbCopyExW':無法將參數5從'SIZE_T *'轉換為'size_t *'
SIZE_T和size_t的大小和符號相同,所以有什么區別? 為什么在這里需要演員表? 如果類型不同,為什么僅在32位Windows上會出現錯誤?
SIZE_T
與std::size_t
不同。 第一個是Windows標頭中的#define
d類型,第二個是C ++編譯器定義的類型。 它們是不同的類型。
至少在我的系統上, SIZE_T
是一種typedef
為ULONG_PTR
,這是一個#define
為unsigned long
。
SIZE_T的定義是什么?
可以將其定義為“ unsigned int”,或者將uint32_t定義為向后兼容
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.