SyntaxHighlighter

2010-09-09

Windows 32bit プログラムを 64bit用に変更するときの注意点。

x64環境のSDKを使ってコンパイルするときに、GWL_WNDPROCなどシステムの定数が使えないことになります。

それは、SDKでは、x64環境であれば(#ifdef _win64)、それらの変数の定義をキャンセルした(undef)のです。

解決法として、GWL_WNDPROCを使った関数(GetWindowLong()/SetWindowLong())などをポインタを使うように変わること。
GetWindowLong() -> GetWindowLongPtr()

そして、GWL_WNDPROC -> GWLP_WNDPROC

としたら、x64環境でも無事に使えるようになります

もし同じコードを32bit環境での実行に心配を持つなら、
#ifdef _win64
  // 64bitコード
#else
  // 32bitコード

0 件のコメント:

人気の投稿