MFCでタスクトレーに常駐するプログラムを作成しております。
そこで、NOTIFYICONDATA構造体に関して教えていただきたいことがあります。
NOTIFYICONDATA構造体のuFlagsに指定する値で、
Shell32.dllのversion5.0以降のときに、NIF_INFO とNIF_STATEというのがあるみたいなのですが、これらを記述すると、定義されていませんというエラーが出てコンパイルできません。
version5.0はME/2000以降と書いてあったんですが、開発に使っているマシンはXPのPROです。
どういうことなのでしょうか?NOTIFYICONDATAのuFlagにNIF_INFOを使用するにはどうすればいいのでしょうか?
よろしくお願いします。
A 回答 (7件)
- 最新から表示
- 回答順に表示
No.7
- 回答日時:
>エラーメッセージは追加したWINVERのところででてます。
#include "stdafx.h"
と
#define WINVER 0x0500
どっちが上ですか?
また、ソースの一番上でWINVERを定義するのではなく、stdafx.hの一番上で定義しても同じですか?
あと、VS.NET 2003のMFCで作成されたstdafx.hを確認したところでは明示的にWINVER 0x0400が指定してありました。
すでにstdafx.h中に指定されていたら、自分で定義を追加せずにその値を0x0500に修正してください。
No.5
- 回答日時:
#define _WIN32_IE 0x0500
などとしても駄目ですか?
http://msdn.microsoft.com/library/default.asp?ur …
http://yokohama.cool.ne.jp/chokuto/urawaza/struc …
参考URL:http://msdn.microsoft.com/library/default.asp?ur …
この回答への補足
ありがとうございます。
いろいろ調べていて、#define _WIN32_IE 0x0500というのを見つけて一度試したことはありますが、同じでした・・・。
No.4
- 回答日時:
#define WINVER 0x0500
は
#include <shellapi.h>
より前に書いてますか?
あとエラーメッセージは全文を書いたほうがいいと思います。
この回答への補足
ありがとうございます。
ちゃんと#define WINVER 0x0500は#include <shellapi.h>より前に書きました。
でも駄目みたいです。
エラーメッセージですが、
「warning C4005: 'WINVER' : マクロが再定義されました。」
というのと、
「error C2065: 'NIF_INFO' : 定義されていない識別子です。」
が出ています。
なにか根本的になにか間違っているのでしょうか・・・(ToT)
よろしくお願いします。
No.3
- 回答日時:
手元に現物がないので説明だけ。
ヘッダファイルのNIF_INFOの定義を見てみましょう。
対応しているヘッダファイルを使用しているのなら、#ifとかでコンパイル条件がついているはずです。
WINVERを0x0500でソースの一番上でdefineしてあげれば
NIF_INFO等を使用可能になりますよ。
参考URL:http://www.microsoft.com/japan/msdn/library/defa …
この回答への補足
ありがとうございます。
ヘッダファイル見てみました。
確かに#ifでvar5以上のときとかちゃんと定義されてました。
で、WINVERを指定してやってみたんですが、エラーが出たままです。。。
もうなにがなんだかわからなくなってきました。
どうすれば・・・(ToT)
No.1
- 回答日時:
もし使用しているのがVC++6.0なら、2000以降追加された機能はそのままでは使用できません。
最新のPlatformSDKをインストールする必要があります。
参考URL:http://www.microsoft.com/msdownload/platformsdk/ …
この回答への補足
ありがとうございます。
インストールしてみましたが、同じエラーが出てコンパイルできません。
他に何か考えられることはありませんでしょうか。
ちなみに開発環境はVC++6.0です。質問の際に抜けておりました。申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- Windows 10 explorerをedgeで開く方法 2 2022/06/05 14:59
- ダイヤルアップ Raspberry Piでアナログモデム経由で音声再生 1 2022/05/20 18:01
- JavaScript useStateの分割代入について 1 2022/05/06 10:02
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- 英語 提示文の構造について 2 2022/07/15 10:27
- ホームページ作成・プログラミング 11以降のホームページ作成ソフト 4 2022/04/10 09:25
- その他(Microsoft Office) エクセルのマクロについて教えてください。 5 2023/01/21 09:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<math.h>があるのにsqrtが・...
-
Makefile作成時の拡張子.oとは?
-
” OS ビルド ” の意味が分か...
-
「fatal error C1189」を回避す...
-
クリティカルエラー Expressio...
-
VB6とInputManソフトの関係
-
ILSpyで、デコンパイルできない。
-
セミコロンについて
-
VBAを何回も作り直して、容量が...
-
エクセルVBAではRound...
-
戻り値について
-
VMwareのLinuxでコンパイルでき...
-
エクセルのマクロで教えて下さい
-
Visual Studio .net ヘッダーフ...
-
MFCのエラーについて
-
外部シンボル "_main"は未解決です
-
C++コンパイル時に『 C1083: in...
-
PRO*C コンパイルエラー
-
1 つ以上の複数回定義されてい...
-
関数形式マクロ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
” OS ビルド ” の意味が分か...
-
VBAを何回も作り直して、容量が...
-
「fatal error C1189」を回避す...
-
C言語でヘッダファイルにグロー...
-
Makefile作成時の拡張子.oとは?
-
エクセルVBAではRound...
-
1 つ以上の複数回定義されてい...
-
コンパイルエラー:ユーザ定義...
-
セミコロンについて
-
ILSpyで、デコンパイルできない。
-
[c++] <pthread.h>がinclude で...
-
クリティカルエラー Expressio...
-
マクロ コンパイルがグレーバック
-
PRO*C コンパイルエラー
-
外部シンボル "_main"は未解決です
-
他のLinuxでも動くa.outの作り方
-
<math.h>があるのにsqrtが・...
-
戻り値について
-
pyc 編集 閲覧
-
C++コンパイル時に『 C1083: in...
おすすめ情報