在过去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
的返回类型吗?对于返回值,例如IDOK
,IDCANCEL
等,IMO没有使用64位而不是32位的好处。可能有一个很好的理由,但我找不到。