質問

私のように変換するにはC++のstruct Cさま、ありがとうございましたって"未申告の識別子"?はC++によって異なる構文を参照し構造体?

struct KEY_STATE 
{
    bool kSHIFT; //if the shift key is pressed 
    bool kCAPSLOCK; //if the caps lock key is pressed down
    bool kCTRL; //if the control key is pressed down
    bool kALT; //if the alt key is pressed down
};

を使用してい変数の種類KEY_STATE内部構造:

typedef struct _DEVICE_EXTENSION
{
    WDFDEVICE WdfDevice;
    KEY_STATE kState;
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;

結果 エラー C2061:構文エラー:identifier'KEY_STATE'

に---ライン KEY_STATE kState; 私はビルにWDKコンパイラの場合は違います。これはヘッダーファイルのコースです。私は移植C++WDMドライバー WDF C.

これは、MSDNの記事C2061.

初期化子が同封することにしるしをつけることになる。この問題を回避するためには、同封してのdeclarator括弧内はすtypedef.

このエラーが起こる時のコンパイラを検出す表現としてのクラステンプレートの引数;利用typenameのコンパイラです。

変更KEY_STATEすtypedef structもこのエラーや何をすべきかを考えることが重要。いけない事はほとんどありません括弧内はものはあまりにも多くの括弧内のその他のものと理解することが可能である。

役に立ちましたか?

解決

Cの名前タイプ struct KEY_STATE.

いを宣言する第二の構造体として

typedef struct _DEVICE_EXTENSION
{
    WDFDEVICE WdfDevice;
    struct KEY_STATE kState;
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;

だいたい書 struct すべての時間をお使いいただけますのでtypedefを宣言する KEY_STATE 類似 DEVICE_EXTENSION:

typedef struct _KEY_STATE
{
    /* ... */
} KEY_STATE;

他のヒント

ありません bool タイプC前C99.

また、タイプと呼ばれ KEY_STATE だけど、 struct KEY_STATE.

えてしまうことではなく:

typedef struct _KEY_STATE 
{
    unsigned kSHIFT : 1; //if the shift key is pressed 
    unsigned kCAPSLOCK : 1; //if the caps lock key is pressed down
    unsigned kCTRL : 1; //if the control key is pressed down
    unsigned kALT : 1; //if the alt key is pressed down
} KEY_STATE;

必要なものをご参照 KEY_STATEstruct KEY_STATE.C++できる場合もありますが、 struct がない平C.

少し値段が高くなりますが、いタイプの別名:

typedef struct KEY_STATE KEY_STATE

現在 KEY_STATE と同じ意味にな struct KEY_STATE

すべtypedefのstructでも必要としない構造体をキーワードにすることを宣言致し変数パターンを示すことが分かった。

typedef struct _KEY_STATE 
{
    bool kSHIFT; //if the shift key is pressed 
    bool kCAPSLOCK; //if the caps lock key is pressed down
    bool kCTRL; //if the control key is pressed down
    bool kALT; //if the alt key is pressed down
} KEY_STATE;

今ことができるの?

KEY_STATE kState;

または(例として:

struct KEY_STATE kState;

予選結果がstruct変'struct'キーワード:

typedef struct _DEVICE_EXTENSION
{
    WDFDEVICE WdfDevice;
    struct KEY_STATE kState;
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;

ご利用の際はDEVICE_EXTENSIONんの使用により'struct'で行っているため、構造体定義typedef単一化合物です。なのでなにができるのと同じでKEY_STATEしたい場合は、使用することに同様の多様な用途でご利用:

typedef struct _KEY_STATE_t
{
    bool kSHIFT; //if the shift key is pressed 
    bool kCAPSLOCK; //if the caps lock key is pressed down
    bool kCTRL; //if the control key is pressed down
    bool kALT; //if the alt key is pressed down
} KEY_STATE;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top