C, C++のコンパイル問題: ''XXX'' という名前のメンバがない。
2022-02-23 06:47:53
もしかしたら、c++:has no member named '...' で問題が発生しているかもしれません。
このクラスにはメンバ変数XXAがないことを意味します。
このクラスは実際にはメンバ変数XXを持っています
この問題の原因は、プロジェクトで定義された変数とシステムヘッダーファイルで定義されたマクロの衝突にあります。クラス定義を処理する前に、同じ名前のマクロが見つかったため、コンパイル(前処理段階)前にクラスのメンバーをマクロとしてマクロ本体に置き換えてしまうのです。
2つの解決策があります。
1.
このクラスにはメンバ変数XXAがないことを意味します。
このクラスは実際にはメンバ変数XXを持っています
この問題の原因は、プロジェクトで定義された変数とシステムヘッダーファイルで定義されたマクロの衝突にあります。クラス定義を処理する前に、同じ名前のマクロが見つかったため、コンパイル(前処理段階)前にクラスのメンバーをマクロとしてマクロ本体に置き換えてしまうのです。
2つの解決策があります。
1.
#ifdef XXX
#undef XXX
#endif
2. システムヘッダーファイルを呼び出す前に、オブジェクト定義があるヘッダーファイルをインクルードする。
#undef XXX
#endif
ここでのXXXは、具体的にはGetObject、LoadImageなどでしょうか
オリジナルのアドレスです。
クリックでリンク先が開きます
関連
-
undefinedMakefile:***セパレータがありません。
-
Cプログラムの単純なエラー [エラー] ldは1終了ステータスを返した
-
複数形使用時:'**'の前にイニシャライザを置く解決策を期待。
-
エラーが発生しました。#852: 式は完全なオブジェクト型へのポインタでなければならない
-
free(): 次のサイズが無効 (fast): 0x0000000000aa4430 問題あり
-
struct と typedef struct を徹底的に理解する
-
Cコンパイル警告:代入がキャストなしで整数からポインタを作成する
-
変数、配列、構造体におけるC言語の代入
-
Cエラー:構造体でも組合でもないものにメンバ 'xxx' を要求しています。
-
Linuxプログラムにおけるセグメンテーションフォールト(コアダンプ)の一般的な解決方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
すでに#.objで定義されているものを修正する。
-
エラー LNK2005: _main は first.obj で既に定義されています。
-
デバッグエラー MSB3073: :VCEnd がコード Solution で終了した
-
エラーが発生しました。#79: 型指定子が必要です
-
libstdc++-6.dll が見つからないため、コードの実行を継続できません。プログラムを再インストールすると、この問題が解決する場合があります。
-
c 言語エラー警告: 複数文字文字定数
-
C C++プログラムのランタイムプログラムは、書き込みエラーのためにDebug/1.exeを開くことができません。
-
0xffffffとは何ですか?
-
警告: 非推奨の文字列定数から 'char *' への変換[-Write-strings] 解決法