2016-08-22 17 views
0

__FILE__マクロを使用してファイルの名前を取得できますか。 プロジェクトの名前を取得するには?ビジュアルスタジオ2015.コンパイル時にコード内のプロジェクト名を取得するにはどうすればよいですか?

https://msdn.microsoft.com/library/b0084kay.aspx

+0

何が必要ですか? –

+1

プロジェクト>プロパティ> C/C++>プリプロセッサ>プリプロセッサ定義。 'PROJECTNAME = $(ProjectName)'を追加してください。リリース構成に対してこの手順を繰り返します。 –

+0

@ HansPassantでは、すべての設定を一度に編集できる便利なスイッチが設定エディタにもあります。 –

答えて

4

それを行う方法についての簡単な例:

PROJECT_NAME =:プロジェクトのプロパティのプリプロセッサの定義オプションで

#include "stdafx.h" 
#include <iostream> 
#include <string> 

#if !defined PROJECT_NAME 
#define PROJECT_NAME "" 
#endif 

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    std::string str(PROJECT_NAME); 
    std::cout << str; 
    return 0; 
} 

は既に存在している定義の末尾に以下を追加します"$(ProjectName)";

1

ただ、プロジェクト設定でコンパイラの定義を追加します。プロジェクト名は明らかにプロジェクト全体のものなので、簡単であるはずです。

また$(ProjectName)ビルドシステムマクロを(値のドロップダウンで<Edit..>を使用してプリプロセッサ定義を編集する際に使用可能なマクロを見ることができる)を使用して、すべてに含めるプロパティ・シートに定義を置くことができますあなたのプロジェクト

+0

ここにマクロがあります:https://msdn.microsoft.com/en-us/library/c02as0cs.aspx – neohope

+0

@neohope、はい。しかし、ビジュアルスタジオ内でそれらを探すには、2つの利点があります。値を見ると、SDKやMSBuildのようなシステムの他のコンポーネントによって定義された値も表示されます。 –

0

C++では、argv [0]が実行可能ファイル名です。デフォルトのプロジェクト設定を使用した場合、一般に実行可能な名前がプロジェクト名として設定されます。

int main(int argc, char **argv) 
{ 
    std::cout<<"Application name :"<< argv[0]<<endl; 
    return 0; 
} 
関連する問題