4

プリコンパイル済みヘッダーなしで新しい win32pject を作成できるように IDE を取得する方法を見つけるために、あらゆるオプションを試してきました。私はこのフォーラムのすべてのスレッドを読み、その中に「プリコンパイルされたヘッダー」という言葉があり、最も近いものは次のとおりでした:

プリコンパイル済みヘッダー

2008 proを使用して(動作は似ているようですが、明示的ではありません)、次の場所に移動します。

ファイル -> 新規 -> プロジェクト

これにより、[新しいプロジェクト] ダイアログが開き、[Visual C++ Win32 プロジェクト] を選択し、名前を入力して [OK] をクリックします。

次に、「Win32 アプリケーション ウィザード」を取得します。アプリケーションの種類が「Windows アプリケーション」に設定されていると、アプリケーション設定ペインでプリコンパイル済みヘッダーのチェックを外すことができません。チェックボックスはグレーアウトされています。「コンソール アプリケーション」を選択した場合、チェックを外すことができますが、GUI アプリを作成しています。

[完了] をクリックすると、xxx.cpp に 6 ヤードのコード、4 つのヘッダー ファイル、および必須の stdafx.cpp が表示されます。

おそらく、このすべてのものを削除して削除し、プロパティに移動してPCHをオフにすることもできますが、それは私が書きたい多くの小さなプロジェクトの例にとって面倒です.

Win32 アプリにコンパイルされる空のプロジェクトが必要なだけなので、PCH のデフォルトを NONE に変更するにはどうすればよいですか?

4

6 に答える 6

8

これを行うために独自のテンプレートを作成することも、デフォルトのテンプレートを編集することもできます。関連するウィザードは次の場所にあります。

C:\Program Files\Microsoft Visual Studio 9.0\VC\VCWizards\AppWiz\Generic\Application

デフォルトのテンプレートを編集する場合は、まずフォルダーをバックアップしてください。

編集を開始する方法を説明します。

まず最初に、プリコンパイル済みヘッダーが必要ないことをウィザード スクリプトに伝える必要があります。お気に入りのテキスト エディターでこのファイルを編集します。

\scripts\1033\default.js

次の行を見つけます。

var Pch = wizard.FindSymbol("PRE_COMPILED_HEADER");

その下の行のいくつかを次のようにコメントアウトします。

//  if ((strAppType == "LIB" || ((strAppType == "CONSOLE") && 
//      !wizard.FindSymbol("SUPPORT_MFC") && !wizard.FindSymbol("SUPPORT_ATL"))) && !Pch) 
    {
        AddFilesToProjectWithInfFile(selProj, strProjectName);
        SetNoPchSettings(selProj);
    }
//  else
//  {
//      AddFilesToProjectWithInfFile(selProj, strProjectName);
//      SetCommonPchSettings(selProj);  
//  }

このファイルを開きます。

\templates\1033\Templates.inf

の最初の出現箇所を見つけて、その[!else]下の次の 3 行を削除します。

stdafx.h
targetver.h
stdafx.cpp

これにより、stdafx.cpp/.h または targetver.h のないプロジェクトが提供され、CPP ファイルは PCH を使用しようとしません。ただし、適切なヘッダー ファイルに #includes を追加していないため、ビルドされません。私はあなたが理解するためにそれを残します:)
(あなたはでファイルを変更することによって自動的に生成されるファイルを編集することができます\templates\1033)

于 2009-10-20T10:04:07.960 に答える
2

空のプロジェクトを選択するか、テンプレートを使用する独自のウィザードを作成します。プロパティをずっと変更したくないとおっしゃっているので、プロパティ シート (vsprops) を使用することも強くお勧めします。このようにして、空のプロジェクトを作成し、必要なプロパティ シートを追加すれば、準備完了です。プロパティをいじる必要がなくなり、各プロジェクトで同じセットが使用されます。

于 2009-10-20T09:25:39.160 に答える
1

[アプリケーション設定]ダイアログの[追加オプション]で[プロジェクトを空にする]チェックボックスをオンにします。

于 2009-10-20T09:15:57.453 に答える
1

VS2010でも同じ問題が発生しているため、この時流に乗り遅れています。

このソリューションが VS2008 に適用されるかどうかはわかりません。

ツールの下に空のプロジェクトをデフォルトにできる設定やオプションがないため、検索して次のことを見つけました。

フォルダ内

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\VCWizards\AppWiz\Generic\Application\html\1033

default.htm という名前のファイルがあります

この</HEAD>セクションには、次の 2 行があります。

<SYMBOL NAME="EMPTY_PROJECT" TYPE=checkbox VALUE=false></SYMBOL>
<SYMBOL NAME="PRE_COMPILED_HEADER" TYPE=checkbox VALUE=true></SYMBOL>

私が交換したもの

<SYMBOL NAME="EMPTY_PROJECT" TYPE=checkbox VALUE=true></SYMBOL>
<SYMBOL NAME="PRE_COMPILED_HEADER" TYPE=checkbox VALUE=false></SYMBOL>

(つまり、これらの行でtruefalseを切り替えただけです)、コンソール アプリを作成すると、既定で空のプロジェクトが作成されます。

コンソール アプリ以外の操作を行った場合の影響についてはわかりませんが、元のファイルを保存したので、古い M$ 設定に戻すことができます。

于 2011-02-20T03:27:07.853 に答える
1

「空のプロジェクト」オプションは、プリコンパイル済みヘッダーのないプロジェクトを作成します。少なくとも、これは Visual Studio 2008 SP1 で得られるものです。

「プリコンパイル済みヘッダーを使用する」がチェックされたままであることは事実ですが、プロジェクトにはプロパティ UsePrecompiledHeader="0" があり、ウィザードはファイルを作成しません。

于 2009-11-13T13:58:08.690 に答える
-1

「追加オプション」の下で「空のプロジェクト」を選択するだけです。次に、プリコンパイル済みヘッダーと自動生成ファイルのないプロジェクトを取得します。

最小のテスト プロジェクトであってもプリコンパイル済みヘッダーを強制するという Microsoft の強迫観念が何であるかはわかりません。これはおそらく、windows.h というマクロ地獄をもたらしたのと同じ考え方、または空のプロジェクトでさえ 24 のプロジェクト設定を上書きして、プロパティ シートをほとんど役に立たなくする方法に基づいているのでしょう。

私は、Microsoft の開発部門内に強力なマフィアが存在し、 Visual Studio が C++ 開発者にとって便利なツールになるのを阻止するために全力を尽くしているのではないかと考えています。これまでのところ、彼らは非常にうまくやっています。

于 2009-10-20T10:58:36.410 に答える