前回のC#に続いて、今度はVC++のサンプルを作成しようと思い、Visual C++ 2008 Express Edition SP1を導入したら今度は次の症状が発生。
新規プロジェクト作成時に左下に「プロジェクト○○の作成に失敗しました」と表示されてプロジェクトが作成されない。
うーん、やっぱり私のマシン(Vista Business SP1)がおかしいのでしょうか。。。
検索すると同じような症状で悩んでいる方がいるようですのでまたまた私の解決方法をメモしておきます。
当初はプロジェクト作成先のフォルダに対するアクセス権かと思いましたが、対象のフォルダに自分でフォルダ作成やファイル作成はできるので、フォルダのアクセス権ではない模様。
日本のサイトで検索するとセキュリティソフト(FW)やIE7が問題とか情報はあるのですが、セキュリティソフトやOS標準のFWはオフで試しており、OSがVistaなのでIE7の削除もできません。
海外のサイトを探してみると、次のサイトが見つかりました。
- 「Solution: VS C++ 2008 “Project creation failed” bug」
- 「HowTo: Fix ‘project creation failed’ in VS C++ Express Vista 64-bit」
どうもCOM DLL周りのアクセス権のようですが、レジストリエディタで色々とやるのも面倒だったので前回C#の問題解決で使用した「SubInACL」を使ってみました(SubInACLはMSサイトからDLできます)。
「SubInACL」インストール先のディレクトリ(通常はC:\Program Files\Windows Resource Kits\Tools)に以下内容のファイルを作成します(ここではファイル名を「vcfix.bat」としておきます)。
———————————————————–
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\VsWizard.VsWizardEngine.9.0 /grant=administrators=f /grant=system=f /grant=users=r
subinacl /subkeyreg HKEY_LOCAL_MACHINE\SOFTWARE\Classes\VsWizard.WizCombo.9.0 /grant=administrators=f /grant=system=f /grant=users=r
———————————————————–
※1 2行です
※2 VistaはUACの関係でProgramFiles配下へのファイル作成は管理者権限が必要になります。予めデスクトップ等で作成し、該当フォルダにコピーするのがおすすめです(コピー時に自動的に許可を求められます)。
「コマンドプロンプト」を管理者権限で起動します(コマンドプロンプトを管理者権限で起動するには、スタートメニューのコマンドプロンプトを右クリックして『管理者として実行』で可能です)。
- 「VsWizard.dllの登録」
以下コマンド実行します(パスはインストール先のフォルダに合わせて変更してください)regsvr32 C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\VsWizard.dll
- 「レジストリのアクセス権変更」
先ほど作成したバッチファイルの保存先へ移動してバッチファイルを実行しますvcfix.bat
これで無事Visual C++ Expressで新規プロジェクト作成を行うことができました。
が、またしても何のサンプルを作るんだったか忘れてしまいましたね。。。
ありがとうございました。おかげでプロジェクトを作成できました。
しっかりコピペしてみると、
gine.9.0 /grant=administrators=f /grant=system=f /grant=users=r
って続くんですね。正直びっくりしました。
[…] 1)参考:http://blog.bitmeister.jp/?p=497 手順1の「VsWizard.dllの登録」を行うと、 『モジュール"C:Program"の読み込みに失敗しました。 バイナリが指定されたパスに格納されて […]