[英]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.