- 締切済み
[VC][ATL] 'ImageList_Read'が定義されていない!というエラーになるのは?
VC++.NET 2002+WTL7.0で開発をしています。 アプリケーションウイザードでMFCアプリケーションを作成して、クラスの追加から「ATLのサポート」を追加します。そして、stdafx.hに #include "atlapp.h" #include "atlctrls.h" を記入すると 'ImageList_Read'が定義されていない というエラーになってしまいます。 とりあえずatlctrls.h内のエラー発生箇所をコメントアウトすることで対応しているのですが...どのようにしたらエラーがでないようにできるのでしょうか?よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- taka_tetsu
- ベストアンサー率65% (1020/1553)
定義されてるのはcommctrl.hってことなので、commctrl.hをインクルードしているのであればincludeファイルの順番では? http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/imagelist/functions/imagelist_read.asp 根本的なことなんですけど、 >#include "atlapp.h" >#include "atlctrls.h" これってあります? atlacc.hとかatlctl.hしかないんですけど。 あと、直接は関係ないですけど、<>と""の違いは理解されてます?
- taka_tetsu
- ベストアンサー率65% (1020/1553)
stdafx.h中の#defineかなんかのせいで必要な個所が読み込まれていないとかは?
- taka_tetsu
- ベストアンサー率65% (1020/1553)
ATLのヘッダーファイルが足りないのでは? とりあえず、ImageList_Readのヘルプを見るなりファイルの内容を検索するなりして必要なヘッダーを再確認してみてください。 >とりあえずatlctrls.h内のエラー発生箇所をコメントアウトすることで対応しているのですが... そんなことしちゃだめです(^^;
補足
MSDNとATL関連のソースは一通り目を通してヘッダーファイルは全部入れているつもりなのですうまくいきませんでした。ネットで検索してみると同じ現象で困っている人もいるのですが解法は見つかっていません。 また単なるWTL/ATLプロジェクトとしてならばエラーにはなっていません...ということでお手上げ状態なのです。
補足
#defineを全てコメントアウトしても同様にエラーになってしまいます。 おそらくMFCをサポートするためのincludeファイルが原因だとは思うのですが...なんとかMFCをサポートしつつエラーを回避する方法はないものでしょうか?