簡體   English   中英

從 size_t 轉換為 int 可能會丟失數據

[英]Possible Lost of Data Converting from size_t to int

Windows 編程。 按照此MS 頁面上的教程並到達底部的這一行:

TextOutW(hdc, 5, 5, greeting, wcslen(greeting));

變量greeting是一個 TCHAR 數組。 VS2019 在上一行報告了一個警告(C4267),從 wcslen() 返回的 <size_t> 和 TextOutW() 預期的 int 轉換的最終參數中可能會丟失數據。 我知道原始示例使用 _tcslen 宏而不是 wcslen() - 沒關系。 我理解為什么會發生這種情況,但對如何修改代碼以解決警告完全感到困惑。

我找不到另一個可能需要 <size_t> 的 TextOutx()。

順便說一句,當我在尋找答案時,我在某處讀到 strlen() 在 64 位編程中已被棄用,盡管我不記得在哪里,我可能錯了。

有解決辦法嗎? 有什么建議嗎?

顯式轉換為(int)wcslen(greeting); 解決了警告,但隱藏了潛在的數據丟失。

暫無
暫無

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

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