Windows XP はもういいか…と思い、結局放置していたのですが、やはり気になって調べました。
Qtのドキュメントを読むと Windows XP はデプロイのみサポートしていると書かれています。これは普通に読むと開発環境(インストール先)としてはサポートはしないけれども XP 向けに作ったソフトウェアをリリースすることはできるよ、と受け取れます。
現在Windows版のリリースはスタティックリンク版として実行ファイルを1つにまとめる形で提供しています。スタティックリンク版だと動作条件が少し限定されるので、調査のためにスタティックリンクしない形のパッケージをWindows XP にインストールしてみました。
起動すると、ウィンドウ自体は正常に表示されます。しかし、サーバに接続するとなにも表示されません。で、マウスを動かしてみるとサーバのマウスは動くのでキーボード/マウスの情報は正常に送信できているようです。
なぜ、デスクトップが表示されないのかを調べるために、コマンドプロンプトを開いて、コマンドでQt Brynhildrを実行してみました。というのも、お恥ずかしいことに一部のデバッグログがまだ標準出力(cout)に出力するようになっているためです。
最初、なにも考えず qtbrynhildr.exe を実行していたのですが、出るはずのログが全く出てきません。
昔ハマった記憶が蘇ってきました…。おもむろに、
qtbrynhildr.exe > run.log
ですよね…コマンドプロンプトには出ないんですよね…
ようやくログを確認しました。そうすると、jpegデータのロード(loadFromData())に失敗していました。受信したjpegデータを1枚ずつファイルに残すように指定するときちんと綺麗にjpegファイルは見られたのでネットワーク通信自体には問題なさそうです。
ということで、"Qt jpeg loadFromData Fail"という感じで検索して得られた結論は…
qjpeg.dll がないんじゃないの?
という衝撃的なものでした(涙)
昔、Qtのバージョンを上げて確認した時にqjpeg.dllが不要になっていると勘違いして imageformats/qjpeg.dll をインストールパッケージから外してしまっていたのです。これに気づかず Windows XP にインストールして「動かんな」と結論づけていたのです。
結論としては、ダイナミックリンク版として提供すれば、Windows XP, VistaもO.K.のようですよ、ってことになります。
下は、VMware上のWindows XP Professional SP3 (32bit) で動かしたものです。Vistaは持っていないので確認できないんですよね…
(追記)
audio/qtaudio_windows.dll も足りませんでした…。依存関係が辿れない? (pluginだから…)
この結果、XPで普通に動きました…ただし、パッケージのサイズが倍の16MBになります…
最近のコメント