0

RegisterDeviceNotificationコードでAPIを使用しました。を使用していない場合は、機能していません(リンカーエラーが発生します)#define WINVER 0x501

1)ウィンドウを見るとWinuser.hRegisterDeviceNotificationAはで定義されて#if(WINVER >= 0x0500)います。これの理由は何ですか?

2)RegisterDeviceNotificationA動作させるために、私は自分の.hファイルですべての宣言を.なしで宣言しました#if(WINVER >= 0x0500)。これは正しい方法ですか?

3)ここでの私の別の質問は、ウィンバーなしで宣言することに問題がありRegisterDeviceNotificationAますか?Winverの用途は何ですか?詳しく説明してください。

4

1 に答える 1

2

のような定義の主な目的はWINVER、最近のコンパイラで古いコードをコンパイルすることです。

新しいコードを作成する場合は、この変数と、おそらくcppファイルまたはプロジェクトファイルで他のいくつかの変数を定義する必要があります。値は、ターゲットにしているWindowsのバージョンです。これは、Microsoftがそれを設計した方法です。

システム定義をコードに複製することは非常に悪い習慣です。

于 2012-07-17T10:15:44.360 に答える