2012-02-26 72 views
5

C++については完全にnoobですが、MoaiのXbox 360ゲームパッドのサポートをXInputで追加しようとしています。私はXInput機能のためのヘッダを含むときに、2つのオプションがある:C++ヘッダーファイルの大文字と小文字の区別

  1. XInput機能 XInput

  • XINPUT Xinput
  • さらに、XInputを使用するにはwindows.hを含める必要があります。 2010の挿入XInput機能/ XINPUTの場合

    #include <Windows.h> 
    

    Windows.h

    それはそうのVisual C++ Expressの完全な

    #include <windows.h> 
    

    しかしオート:私が見てきたすべての例は、次の構文を使用しますその大文字と小文字の区別は重要ですが、Windows.hの場合は問題ではありません。

    ヘッダーファイルを含めるときに大文字小文字の区別が重要ですか?これにいくつかの論理はありますか?

    X入力の差異は、単にXInputという名前のヘッダーとXinputという名前のヘッダーがあるということだけですか?

    +0

    [ヘッダファイルを含む場合、パスは大文字と小文字が区別されますか?](http://stackoverflow.com/questions/1951951/when-including-header-files-is-the-path-case-sensitive) – IInspectable

    答えて

    4

    ヘッダー名とインクルードディレクティブの大文字と小文字は、実装定義です。一般に、あなたが構築しているプラ​​ットフォームが大文字と小文字を区別するかどうかは問題ありません。

    私は確かめるためにテストする必要がありますが、さまざまな 'xinput.h'を入力すると、発生したファイルがあってもヘッダー検索パスで最初に発生するものが見つかります後の検索パスでは、大文字と小文字の区別があります。これは、これらの問題に精通していない開発者の視点からは直感的ではありません。なぜなら、それらの自動補完の1つを使用することができ、VSはではなくが選択されているからです。

    また、VSがそれよりもスマートで、最適な大文字と小文字を検索することも可能です。

    +1

    実装が唯一のものであるため、これをアップビューしますOS定義ではなく定義されています。 ISOは、インクルード文内の文字列の処理は、実装まではかなり完全になっていると述べています。通常、それは基礎となるファイルシステムのプロパティにマップされますが、必ずしもそうであるとは限りません。実際には、ヘッダがファイルシステム上に存在する必要は全くありません:-) – paxdiablo

    2

    Windowsでは、ファイル名は大文字と小文字が区別されません。これは#includeに拡張されます。いずれの場合も行います。

    一部のプラットフォーム(Linuxなど)では、ファイル名と大文字と小文字が区別されるため、実際のファイル名と一致する必要があります。

    +0

    コンパイラは 'XInput'と' Xinput'の違いをどのように知っていますか? – NoobsArePeople2

    +0

    これはクラス名であり、ファイル名ではありません。クラスや他のCのものは常に大文字と小文字を区別します。 – StilesCrisis

    +2

    @ NoobsArePeople2:*コンパイラは、これらのファイルの違いを認識しません。コンパイラは、オペレーティングシステムが提供するファイルを取得します。 C++ソースは、OSに関係なく、大文字と小文字を区別します。これには 'class'の名前(ファイルではない)が含まれます。 – Johnsyweb

    4

    基本ファイルシステムで大文字と小文字が区別される場合のみ重要です。 Windowsのファイルシステムでは大文字と小文字は区別されませんが、Linuxなどのオペレーティングシステムのファイルシステムは大文字と小文字が区別されます。実際のファイルの正確な実際の名前を使用して、あるOSから別のOSに移植する場合にコードが動作するようにしてください。

    +0

    ファイルシステムは検索の大文字と小文字を区別するものではありません。これはコンパイラです(16.2.2 [cpp.include]:*「場所の指定方法や特定されたヘッダは実装定義です」)。 – IInspectable

    1

    Windowsは、他の人が言ったように感覚的ではありません。しかし、それはあなたの問題ではありません。あなたの問題は、Visual Studioのインクルードファイルの設定です。コンパイラは、標準ヘッダー(<>構文を使用したヘッダー包含)を、セットアップされた順序で探します。 Tools->Optionsを起動し、次にProjects and Solutions->VC++ directoriesを検索し、Include Filesのシーケンスを参照してください。

    関連する問題