gpt4 book ai didi

c++ - 转换为 HWND 时发出警告

转载 作者:太空宇宙 更新时间:2023-11-04 12:56:18 24 4
gpt4 key购买 nike

我有一个用 C++ 为 Win64 编写的程序,该程序从父程序执行,需要将其父窗口设置为父程序的窗口。父程序将它的 HWND 作为命令行参数传入,我将参数解析为 int(使用 stoi() ) 在它被转换为 HWND 之前。我的代码的简化版本如下所示:

int parentHwnd = stoi(args[HWND_INDEX]);
SetParent(childHwnd, (HWND) parentHwnd);

但是,编译时出现以下错误:

warning C4312: 'type cast': conversion from 'int' to 'HWND' of greater size

是否有安全的方法将 int 转换为 HWND 并消除此错误?或者我应该将给定的命令行 arg 解析为 int 以外的东西,以便能够安全地转换为 HWND 吗?

最佳答案

  1. 传递指针/句柄时,您应该使用 std::stoull ;
  2. 并使用显式转换 HWND parentHwnd = (HWND)std::stoull(args[HWND_INDEX]);

关于c++ - 转换为 HWND 时发出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46507565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com