パスワードを忘れた? アカウント作成
49913 journal

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プロジェクト部分のビルドエラーが文字化けしていてわけがわからない。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

読み込み中...