MFC ActiveX ControlWizard のエラー

[戻る]
テン 2002/04/28(日) 23:03:24
初めて質問します。

環境は
WINXPPro VC6.0 SP5 MFC 
です。

MFC ActiveX ControlWizard
でつくったプロジェクトをビルドすると
次のエラーがでます。

...
リンク中...
   ライブラリ Release/OCX.lib とオブジェクト Release/OCX.exp を作成中
ActiveX コントロールを登録しています...
'C:\DOCUME~1\テン' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
c:\windows\system32\cmd.exe の実行エラー

同じプロジェクトを
WIN2KPro VC6.0 SP5 MFC
ではエラーはでません。

エラーの回避方法を教えてください。

[E-Mail] 2002/05/02(木) 14:55:46
> 'C:\DOCUME~1\テン' は、内部コマンドまたは外部コマンド、
> 操作可能なプログラムまたはバッチ ファイルとして認識されていません。

'C:\DOCUME~1\テン' とは、フォルダでしょうか?
それとも、拡張子なしのファイルでしょうか?
とりあえず、そのへんから調査になると思いますが。

テン 2002/05/02(木) 20:39:59
 ん さんありがとうございます。

> 'C:\DOCUME~1\テン' とは、フォルダでしょうか?
フォルダだとおもいます。
実際に'C:\Documents and Settings\テン 1'というフォルダが存在します。
WINXPのユーザーアカウントで 'テン 1'というユーザーを作成しました。
そしてログインしました。
そのほかにも 'テン 2'、'テン 3'というユーザーも作成しました。
すべてアドミニストレータの権限をもったユーザーです。

ただし 'テン'というのは仮称です。 '日本'とか 'アメリカ'とか '田中'のような
ユーザー名に置き換わります。ややこしくてすみません。 _(._.)_

また、プロジェクトフォルダは 'C:\PRG\OCX' です。

ウィザードが出力したコードには、なにも手を加えずにビルドしました。

そのほかに 'ATL COM AppWizard' でも同じ様なエラーが出ます。

何か解決の糸口ないでしょうか?
よろしくお願いします。

さなえ 2002/05/02(木) 20:49:40
XPのフォルダ見てもだめですよ。
WIN2KPro VC6.0 SP5 MFC では認識できているのだから
WIN2KProマシンにあってWINXPProマシンにないものです。
(別マシンですよね?)
プロジェクトのカスタムビルドから'C:\DOCUME~1\テン'を
呼び出していると思うのでそちらも確認してください。

テン 2002/05/02(木) 22:10:52
さなえ さんありがとうございます。
早速調べました。

その結果、DEBUGフォルダ下
 regsrv32.trg ファイルがないことがわかりました。
 regsrv32.exe は WINDOWS\SYSTEM32下にあります。
コマンドプロンプトで
 regsrv32 OCX.OCXリターンで登録もできました。
ビルドが,regsrv32.exeの呼び出しで失敗しているのか
あるいは、regsrv32.exe が C:PRG\OCX\DEBUG\OCX.OCXを呼び出せないのか?
ビルドがログインユーザーのホームポジション 'C:\DOCUME~1\テン'を
何かと入れ違えているように思えますが?
ビルドに教える方法あるのですか?

テン 2002/05/02(木) 22:32:28
regsrv32 -> regsvr32 のまちがいです。すみません。 _(._.)_

テン 2002/05/02(木) 23:02:31
[[解決]]
エラーの回避方法が見つかりました。
原因は 'テン ' ではじまる複数のユーザーアカウントでした。
 'テン 1'、
 'テン 2'、
 'テン 3'
ユニークな名前の('ABCDE'の様な)新規ユーザーを作成して
そのユーザーでログオンし、ビルドするとエラーはでませんでした。
 ん さん、さなえ さん、ありがとうございました。

駄犬 [E-Mail] 2002/05/03(金) 01:48:43
解決したところになんですが。。。

'C:\DOCUME~1\テン' という(多分)中途半端なショートファイル名が気になります。
これは、本来なら'"C:\DOCUME~1\テン 1\なんたらかんたら"'のようにダブルクオーテーシ
ョンで括られるか、あるいは'C:\DOCUME~1\テン~1\なんたらかんたら'のような完全なショー
ファイル名で指定されるべき個所のように思われます。
メイクファイルをエクスポートしてみれば、問題の個所を突き止められる*かも*しれません。
それで根本的な原因が判るかどうかは別として、どこでおかしくなる可能性があるか、後学の
ために把握しておくといいでしょう。その知識がいつの日か役立つことになる*かも*しれませ
ん。(^^;

以上いくつか仮定を交えて話をしました。
見当違いだったら申し訳ありません。

テン 2002/05/03(金) 10:46:57
追記です。
エラーの原因がログインユーザーの名前にあると思ったのですが、
そうでもないらしいです。すみません。 _(._.)_
'テン 2'でも 'テン 3'でもエラーなしです。'テン 1'のみエラー

>メイクファイルをエクスポートしてみれば
メイクファイルは作成されていませんでした。 [*.MAK]

それで、HTML Documentに保存されたビルドのログをみると、
...
コマンド ライン "link.exe @"C:\DOCUME~1\テン 1\LOCALS~1\Temp\RSP10.tmp"" の作成中
一時ファイル "C:\DOCUME~1\テン 1\LOCALS~1\Temp\RSP11.bat" を作成し、次の内容を記
録します
...
コマンド ライン ""C:\DOCUME~1\テン 1\LOCALS~1\Temp\RSP11.bat"" の作成中
タイプ ライブラリを作成中...
コードを生成中...
リンク中...
   ライブラリ Debug/OCX3.lib とオブジェクト Debug/OCX3.exp を作成中
アウトプット ウィンドウ
ActiveX コントロールを登録しています...
'C:\DOCUME~1\テン' は、内部コマンドまたは外部コマンド、
>ここで 一時ファイル "C:\DOCUME~1\テン 1\..." が
>'C:\DOCUME~1\テン' に変わっています
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
c:\windows\system32\cmd.exe の実行エラー
>ビルドのログ 終わり

'テン 1'と他のユーザーの違いは
@ XPをセットアップして後、最初に作ったユーザー
A VCをセットアップしたユーザー
ぐらいです。
今はエラーの回避方法はわかったのですが、原因はわからないです。
なにかわかったときは報告したいとおもっています。

古いスレッドには追加発言できません。