最新のプラットホームSDKをインストールし、WindowsXPの機能を使用するため
#define _WIN32_WINNT 0x501と定義してコンパイルしたのですが、使いたいディファイ
ン値が定義されていないとコンパイルエラーが出ます。XP機能を使う為には他に定義し
なくてはいけないものはあるのでしょうか?教えてください。
環境:WindowsXP,VC++6.0
必要なヘッダをインクルードしてないのでは?
> 使いたいディファイン値が定義されていないとコンパイルエラーが出ます。
「使いたいディファイン値」がなんなのかも書いた方がいいと思いますよ。
使いたいディファイン値はWinUser.hの
#define WTS_CONSOLE_CONNECT 0x1
#define WTS_CONSOLE_DISCONNECT 0x2
#define WTS_REMOTE_CONNECT 0x3
#define WTS_REMOTE_DISCONNECT 0x4
#define WTS_SESSION_LOGON 0x5
#define WTS_SESSION_LOGOFF 0x6
#define WTS_SESSION_LOCK 0x7
#define WTS_SESSION_UNLOCK 0x8
です。
駄犬さん紹介のページにある
_WIN32_WINNTとWINVERの両方を0x0501と定義する必要がある。
ってのが、まず試すべき措置ですね。
_WIN32_WINNTとWINVERの両方を0x0501と定義したのですが、変化なしです。
どこのWinUser.hをインクルードしてますか・・・?
SDKは最新ですか?
Microsoft SDK\IncludeのWinUser.hをインクルードしています。SDKは最新です。
>Microsoft SDK\IncludeのWinUser.hをインクルードしています。
ん~・・・ほんとかな・・・。
Winuser.hは、Windows.hでインクルードされるのですが、
#include <Winuser.h>
とかやってませんか。
#include <Winuser.h>としてました・・・。#include <Winuser.h>を削除し、#include
<Windows.h>のみ宣言したのですがだめです・・・。
ちなみにこのように宣言しているのですが
#define WINVER 0x0501
#define _WIN32_WINNT 0x0501
#include <windows.h>
こんにちは。
メニューから
設定->(ダイアログ内の)C/C++タブ
と選び、プリプロセッサの定義に
WINVER=0x0501(必要なようなら _WIN32_WINNT=0x0501 も)
をコンマで区切って追加してみてください。
この方法で定義したら、ソースファイルの #define は削除したほうがいいかもしれませ
ん。
ないっぺさんの方法でコンパイルしましたら、エラーなく成功しました。
ありがとうございました。