我有一个用于签名的C ++ / MFC / 32位的典型Windows消息处理程序LRESULT CMyFrame::OnMyMessage(WPARAM wParam, LPARAM lParam)
我已经写了这两行,在第一行中胜过第二行:
int iError = reinterpret_cast<int>(lParam);
int iWorks = (int)lParam;
我首先收到C2440错误:错误C2440:“ reinterpret_cast”:无法从“ LPARAM”转换为“ int”
但是第二个可以编译
这是C ++,而不是C,因此我更喜欢第一个而不是第二个。我在做什么错?
[reinterpret_cast
验证它可以在编译时重新解释底层的位结构,并且看到您正在尝试将LPARAM
更改为int
,并且不喜欢它。
改为尝试static_cast
。