ここまで触れてませんでしたが、UltraVNC(のサーバ)をソースコードからビルドしてみます。
私が幾つかの点で躓いたので、そのメモです。
以下は、Windows 7(32bit版) 上で、VisualStudio 2008 の環境でビルドしています。
- ソースコードの取得
- UltraVNCのサイトからダウンロードします。
一つ前の安定版である 1.0.8.2 を取得します。
私は、最新バージョンの 1.0.9.5 は上手くビルドすることが出来ませんでした(必要なファイルが幾つか無いようです)。
(バージョンの 1.0.9.5 のビルドは こちら を参照)
http://www.uvnc.com/download/1082/ - ソリューションを開く
- ソースコードを解凍したら、VisualStudioより、winvnc¥winvnc.sln を開きます。
いきなり、一部読み込めないプロジェクトがある旨のエラーが出ますが、無くても何とかなります。ソリューションを開いた後で削除してしまいましょう。また、デバッグに備えて、winvnc をスタートアッププロジェクトに指定しておきます。
- ビルド
- ソリューションのビルドを実行します。
「ファイルが使用中で書き込めない」旨のエラーが発生した場合は、めげずに再度ビルドを実行します。
何度かビルドを実行すれば、実行ファイル等が生成されるでしょう(競合の理由は謎です…)。 - デバッグ(の前に幾つか設定)
- ビルドが通せるようになっても、更に UAC 関連の設定が必要です(設定してないと「開始できません。アプリケーション構成が正しくないため、このアプリケーションの開始に失敗しました」エラーが出ます)。
winvnc のプロパティページから「リンカ」−「マニフェスト ファイル」の設定を開きます。
「UACの実行レベル」が「asInvoker」になっているので「requireAdministrator」に変更します。
「winvnc.exe」の manifest ファイルと requestedExecutionLevel が一致しない旨の警告が出る場合は、これも「requireAdministrator」に変更します。
ちなみに、私の環境では、「winvnc.exe.x64.manifest」が使われたりして、アーキテクチャが「AMD64」になってて更に怒られるので、ここらも「X86」に変更しました(プラットフォームは 「Win32」 になっているのに何故?)。尚、可能であれば、winvncリソース中の名前を「winvnc.exe.x86.manifest」に変更した上で、修正した方がよいでしょう。再度ビルドしたら、VisualStudio 上でデバッグできるようになっています。「デバッグ開始」しましょう。
- p.s. VNCViewer は、ビルドに関して引っ掛かる部分はありません。サクッとビルドできます。