これは、Visual Studio プロジェクトの命名に関する質問であり、「警告」でもあります。
VS 2010 で ATL/COM プロジェクトを構築しています。 [追加] --> [クラス] --> [ATL シンプル オブジェクト] ウィザードを実行してクラス Foo を作成すると、Foo.rgs ファイルのみが作成され、予想される Foo.cpp Foo.h ファイルは表示されませんでした。
ウィザードを機能させるためのいくつかのバリエーション (さまざまなオプションをチェックするなど) を試みた後も、まだ成功しませんでした。エラーメッセージはなく、出力に「ソースファイルがありません」以外に何かが失敗したことを示すものはありませんでした。
「なぜそうなのか」に対する答えを見つけようとしているときに、問題のプロジェクトとクラスの ProjectName.ClassName を ProgID フィールドに手動で入力する必要があるという言及に出くわしました。プロジェクト名 (Some-Project) を入力しようとすると、ウィザードはハイフンがそのフィールドの「不正な文字」であると不平を言いました。
ここでの「ATLウィザードがファイルを生成しない理由」検索に関するWeb検索とバリエーションも空になりました。
したがって、ProgID フィールドの「ダッシュは許可されていません」がさらに影響を与える可能性があると推測し、プロジェクト名、ファイル名、ディレクトリ名などのすべてのダッシュをアンダースコアに変更して、それがどのような影響を与えるかを確認することにしました。"Some-Project" は "Some_Project" になり、"Random-Module.*" はプロジェクト全体で "Random_Module.*" になります。
すべてのダッシュ/ハイフンがアンダースコアに変換されると、ウィザードは正しく実行され、必要なすべての COM/ATL 配管要素が含まれた状態で、予想されるすべてのファイルが魔法のように表示されました。
そう 。. .
1)名前にダッシュを含むプロジェクトを使用することが「合法」である理由がわかりましたが、ダッシュはウィザードを壊しますか?
2) 理由が何であれ、Visual Studio プロジェクト名にダッシュ/ハイフンを使用しないことをお勧めします。