1. ホーム
  2. C言語

C, C++のコンパイル問題: ''XXX'' という名前のメンバがない。

2022-02-23 06:47:53
は、''XXX''という名前のメンバーがいない。
もしかしたら、c++:has no member named '...' で問題が発生しているかもしれません。



このクラスにはメンバ変数XXAがないことを意味します。



このクラスは実際にはメンバ変数XXを持っています



この問題の原因は、プロジェクトで定義された変数とシステムヘッダーファイルで定義されたマクロの衝突にあります。クラス定義を処理する前に、同じ名前のマクロが見つかったため、コンパイル(前処理段階)前にクラスのメンバーをマクロとしてマクロ本体に置き換えてしまうのです。



2つの解決策があります。



1.



#ifdef XXX



#undef  XXX



#endif
2. システムヘッダーファイルを呼び出す前に、オブジェクト定義があるヘッダーファイルをインクルードする。







ここでのXXXは、具体的にはGetObject、LoadImageなどでしょうか

オリジナルのアドレスです。 クリックでリンク先が開きます