まず退路を確保する

| コメント(0) | トラックバック(0) このエントリーをはてなブックマークに追加 このエントリーを含むはてなブックマーク

何やってんだかと思わないでもないが、
64bit C++での開発が頓挫した場合の手段を講じておく。
そうしておかないと、頓挫した際に新作のプログラムを用意できないから。

で、今まで書いたことがなかったかもしれないが、
「えすてぃ」以降の作品は、すべてBorland C++ Builder6 (Professional Edition)で作成している。
(以下BCB6と略す)
BCB6はWindows XPには対応しているが、Windows VistaやWindows 7には公式には対応していない。
そしてBCB6は発売から10年ほど経過し、すでに発売した会社もなくなっている。
※厳密には、売却やら買収やらで残った会社が後継のソフトを販売しているが、
 本カテゴリのポリシーに従い、それに頼るのは最後の手段とする。

公式には対応していなくてもいいから、使用できないか試してみた。
その手順を記す。


1.管理者権限を持つユーザーで、プロダクトCDからインストールする。
  標準インストールでは、"C:\Program Files (x86)\Borland\CBuilder6"にインストールされる。
2.メーカーのWebサイトから、最新版(と言っても公開されたのは9年近く前だが)の
  アップデートを入手し、インストールする。
3.ショートカット「すべてのプログラム」→「Borland C++ Builder 6」→「C++ Builder 6」で起動する。

起動すると、次のエラーダイアログが表示された。


'C:\Program Files (x86)\Borland\CBuilder6\Bin\bcb.$$$' から 'C:\Program Files (x86)\Borland\CBuilder6\Bin\bcb.dro' に変更できません.

エラーダイアログが表示されるが、ソフトそのものは起動する。

でも起動の都度エラーダイアログが表示されるのも目障りだ。
調べてみると、どうもUAC(ユーザーアカウント制御)が原因らしい。
3.のショートカットの実体は"C:\Program Files (x86)\Borland\CBuilder6\Bin\bcb.exe"なので、
このプログラムのプロパティを開き、互換性タブで「管理者として実行」にチェックを入れる。

bcb1.png

再度起動してみると、
起動時にUACの確認ダイアログ(このプログラムを起動してよいか尋ねられる)が表示されるが、
先ほどのエラーダイアログは表示されなかった。


次に、既存の作品のプロジェクトファイルをダブルクリックしてBCB6を起動してみる。
従来なら、拡張子.bprが関連付けられているため、ダブルクリックするだけで
BCB6が起動し、そのプロジェクトが開かれるのだが...。


プログラムにコマンドを送信しているときにエラーが発生しました。

またエラーダイアログだ。
一応ソフトは起動するが、プロジェクトは開かれない。
その状態で再度bprファイルをダブルクリックするか、
BCB6のメニューで「ファイル」→「プロジェクトを開く」でbprファイルを選択すれば、
プロジェクトを開くことができた。


どうやらこのエラーはBCB6に限ったものではなく、
アプリケーションのデータファイルから起動すると発生するもののようだ。
Web上でよく見られたのは、Excelのxlsファイルをダブルクリックしたら表示された等々。

このエラーもUACに関係するものらしく、方々のWebサイトでは
先述の互換性タブにて「管理者として実行」をチェックするとか、しないとか、
互換モードでWindows XP(SP3)に変更するとか、しないとか、
統一されていなかった。
どうもケースバイケースらしい。
※他にも、ウィルス対策ソフトを止めたらエラーが表示されなかった、等

こちらで試してみたところ、次の結果だった。
・管理者として実行ON+WinXP互換モードON→エラー
・管理者として実行OFF+WinXP互換モードON→エラー
・管理者として実行ON+WinXP互換モードOFF→エラー
・管理者として実行OFF+WinXP互換モードOFF→エラー
つまり、結局エラーが出たということ。


他のアプローチとして、
assocコマンドとftypeコマンドで関連付けを変えることを考える。
まず、コマンドプロンプトを管理者権限で起動し、次のコマンドで確認した。

> assoc .bpr
.bpr=BCBProject
> ftype BCBProject
BCBProject=C:\Program Files (x86)\Borland\CBuilder6\Bin\bcb.exe /np

bcb.exeのオプション/npは、起動時に新規プロジェクトを開かないようにするらしい。
次のように、コマンドプロンプト上で直接コマンドを入力して起動すると、
エラーなく起動し、プロジェクトも開かれた。
"C:\Program Files (x86)\Borland\CBuilder6\Bin\bcb.exe" D:\xxx.bpr

次に、ftypeコマンドでBCBProjectの関連付けを変更してみた。

> ftype BCBProject=C:Program Files (x86)\Borland\CBuilder6\Bin\bcb.exe %1
BCBProject=C:\Program Files (x86)\Borland\CBuilder6\Bin\bcb.exe %1

その後、
・コマンドプロンプトからbprファイルを実行→エラー変わらず
・bprファイルをエクスプローラ上でダブルクリック→エラー変わらず
やっぱりエラーが表示される。
exeファイルのフルパスや%1をダブルクォートで括っても、結果は同じ。

対処法が他に思い当たらないし、起動しないわけではないことが分かったので、これで良しとする。
少なくともショートカットからBCB6を起動し、その後メニューからプロジェクトを開けば使えるのだから。

試していないが、BCB6をC:\Program Files (x86)\以下にインストールすると
UACの対象となり、正常に動作しないかもしれないので、他のフォルダにインストールする方がいいかもしれない。


プロジェクトを開けたところで、再構築(フルビルド)を行う。
旧PCでは結構時間がかかった再構築が、あっという間に終了。
実行ファイルが生成され、起動してみたが特に問題はなかった。

トラックバック(0)

トラックバックURL: http://c-works.gonna.jp/mt-staff/mt-tb.cgi/32

コメントする