我正在使用C++为Win64编写一个程序,该程序由父程序执行,并且需要将其父窗口设置为父程序的窗口。父程序通过命令行参数传入它的 HWND
, 我在将其转换为 HWND
之前将其解析为 int
(使用 stoi()
)。下面是我的代码简化版:
int parentHwnd = stoi(args[HWND_INDEX]);
SetParent(childHwnd, (HWND) parentHwnd);
然而,在编译时我遇到了以下错误:
warning C4312: 'type cast': conversion from 'int' to 'HWND' of greater size
有没有安全的方法将int
转换为HWND
并消除这个错误?或者我应该将给定的命令行参数解析为一些其他类型而不是int
,以便能够安全地转换为HWND
?
HWND
应该进行符号扩展。我不确定如何最好地实现它,希望有C++专家能提供帮助。 - Harry Johnston(HWND)IntToPtr(parentHwnd)
- RbMm