kobunの日記: RealVNC Viewer Free EditionをWindows x64用にビルドしてみた
日記 by
kobun
えぇーいとビルドしてみるとエラーでまくり。
GetWindowLongとSetWindowLongを使っていることがまずいらしいので、それぞれGet/SetWindowLongPtrに置換。
GWL_USERDATAもGWLP_USERDATAに置換。
logmessagesプロジェクトのビルドが通らないので、とりあえず他のプロジェクト中の#include "logmessages/messages.h"をコメントにしてえいやっとビルド。
EXEができたので動かしてみると 0xc000007b エラーで動かない。
64ビット環境で32ビットDLLを読み込もうとすると起きるエラーらしいのでマニフェストファイルを見てみるとX86って書いてあったので*に置換してビルド。
最初のダイアログまで出たが、他のウインドウを出そうとするとアクセス違反。
ダイアログプロシージャのアドレスが入っているはずの変数の値がおかしいのでさかのぼってみると、GetWindowLongで得た値を使っている。
それならばと、GetWindowLongPtrの戻り値を受ける変数の型をLONG_PTRにし、SetWindowLongPtrに渡す変数もLONG_PTRにする。
あっさりと動いた。
それにしてもlogmessagesプロジェクト部分のビルドエラーが文字化けしていてわけがわからない。
RealVNC Viewer Free EditionをWindows x64用にビルドしてみた More ログイン