質問
私のように変換するには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.
初期化子が同封することにしるしをつけることになる。この問題を回避するためには、同封しての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_STATE
と struct 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;