我有一个程序,我在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
吗?
答案 0 :(得分:0)
HWND parentHwnd = (HWND)std::stoull(args[HWND_INDEX]);