为什么CDialog :: DoModal会返回一个INT_PTR,而不是像旧的SDK那样返回一个int

时间:2018-01-24 13:22:05

标签: c++ windows mfc

在过去64编程很奇特的时候,CDialag::DoModal()函数只返回int

现在使用最近的SDK DoModal会返回INT_PTR,如果您编译为32位,则会将{type>固定为int,如果您编译,则会将{type>固定为__int64对于64位。

我目前正在将旧的32位应用程序调整为64位,当然每次有类似int answer = someDialog.DoModal();的内容时都会收到警告。唯一干净的解决方案可能是用int替换所有INT_PTR s(如果有人有更好的想法,请告诉我。)

现在有人知道为什么微软的MFC人员不会将int作为DoModal的返回类型吗?对于返回值,例如IDOKIDCANCEL等,IMO没有使用64位而不是32位的好处。可能有一个很好的理由,但我找不到。

0 个答案:

没有答案