VC++6で作ったプロジェクトをVC++2008に移植したあげくx64(64bit)アプリケーション化する上で躓いたこと

  • VC++6 -> VC++2008
    • あちこちキャストしないといけないとこ出現
    • strcpy()など古いAPIでwarning続出->とりあえず無視
    • 返値の型宣言ない関数を明示的にintとして宣言しないといけない
x64のVC++8.0コンパイラでは、インラインアセンブラ(_asm)が廃止されました。
代替の方法としては、MASM(ml64.exe)を使ってバリバリのアセンブリ言語プログラムをコーディングするか、
__cpuid()や__rdtscなどの組み込み関数(Compiler Intrinsics)を使うことになります。
個人的には後者がお勧めです。
ON_WM_TIMER() で定義している関するの引数が変更されているため 
ヘッダーファイルのOnTimer (UINT idEvent)を探してOnTimer (UINT_PTR idEvent) に
ソースファイルのafx_msg void OnTimer(UINT nIDEvent)を 
afx_msg void OnTimer(UINT_PTR nIDEvent)に修正する。
この他にもON_WM_NCHITTEST()の戻り値が、UINTからLRESULTに変更されたりしている。