• 締切済み

[VC][ATL] 'ImageList_Read'が定義されていない!というエラーになるのは?

VC++.NET 2002+WTL7.0で開発をしています。 アプリケーションウイザードでMFCアプリケーションを作成して、クラスの追加から「ATLのサポート」を追加します。そして、stdafx.hに #include "atlapp.h" #include "atlctrls.h" を記入すると 'ImageList_Read'が定義されていない というエラーになってしまいます。 とりあえずatlctrls.h内のエラー発生箇所をコメントアウトすることで対応しているのですが...どのようにしたらエラーがでないようにできるのでしょうか?よろしくお願いします。

みんなの回答

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.3

定義されてるのは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)
回答No.2

stdafx.h中の#defineかなんかのせいで必要な個所が読み込まれていないとかは?

nitscape
質問者

補足

#defineを全てコメントアウトしても同様にエラーになってしまいます。 おそらくMFCをサポートするためのincludeファイルが原因だとは思うのですが...なんとかMFCをサポートしつつエラーを回避する方法はないものでしょうか?

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

ATLのヘッダーファイルが足りないのでは? とりあえず、ImageList_Readのヘルプを見るなりファイルの内容を検索するなりして必要なヘッダーを再確認してみてください。 >とりあえずatlctrls.h内のエラー発生箇所をコメントアウトすることで対応しているのですが... そんなことしちゃだめです(^^;

nitscape
質問者

補足

MSDNとATL関連のソースは一通り目を通してヘッダーファイルは全部入れているつもりなのですうまくいきませんでした。ネットで検索してみると同じ現象で困っている人もいるのですが解法は見つかっていません。 また単なるWTL/ATLプロジェクトとしてならばエラーにはなっていません...ということでお手上げ状態なのです。

関連するQ&A

専門家に質問してみよう