現在の 32 ビット アプリケーションを 64 ビットに移植するプロセスで、コンパイラ オプション /we4302 を追加しました (SO Question Clarification: Porting 32 to 64 bitおよびHans Passantによる提案された回答を参照してください)。インクルード ファイルにポインタの切り捨てがあるようです。
c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\ATLMFC\INCLUDE\afxtempl.h
(163) : error C4302: 'type cast' : truncation from 'CControlBar *' to 'long'
c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\ATLMFC\INCLUDE\afxtempl.h
(163) : error C4302: 'type cast' : truncation from 'HMENU ' to 'long'
ビルド システムにコンパイラ フラグを永続的に追加することを計画していましたが、MFC インクルードに問題がある場合、それは悪い考えです。
だから私の質問は
- 報告された問題は誤った警告ですか?
- これが実際にポインターの切り捨てをもたらす場合、推奨される解決策は何ですか
- ビルド システムにコンパイラ オプション /we4302 を追加するのは悪い考えですか?