簡體   English   中英

無法將參數5從'SIZE_T *'轉換為'size_t *'-為什么?

[英]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_Tstd::size_t不同。 第一個是Windows標頭中的#define d類型,第二個是C ++編譯器定義的類型。 它們是不同的類型。

至少在我的系統上, SIZE_T是一種typedefULONG_PTR ,這是一個#defineunsigned long

SIZE_T的定義是什么?

可以將其定義為“ unsigned int”,或者將uint32_t定義為向后兼容

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM