構造体について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
aridai
記事: 34
登録日時: 5年前

構造体について

#1

投稿記事 by aridai » 5年前

初めて、トピックを立てさせていただきます。
現在、DxLibとVC++を使ってゲームを制作しています。
ですが、構造体について困ったことがあるので、質問させていただきます。
ソースファイルをmain.cpp、game.cpp、loading.cppに分割して、
main.cppとgame.cppで使っているグラフィックハンドルを1つの構造体にまとめてloading.cppで使いたいのですが、
どのようにして渡せばよいかわかりません。

詳しく書くと
main.cpp - WinMain関数とタイトル画面の処理をする関数が記述されている。
game.cpp - gamemain関数(自作)が記述されている。
loading.cpp - loadfiles関数(自作)が記述されている。
そこでこの2つをloadfiles関数でロードしたいとします。
int g_handleTitleimage; // タイトル画面の画像 (main.cpp)
int g_handlePlayerimage; // プレーヤーの画像 (game.cpp)

自分で考えたのは

コード:

struct data{
  int handleTitleimage;
  int handlePlayerimage;
};
struct data picture;
[code]
これを3つのcppファイルの対応するヘッダファイルに書くことでしたが、
定義のしすぎなので、うまくいきません。
他にもいろいろ試したのですが、うまく行きませんでした。
正しい方法を教えて下さい。

aridai
記事: 34
登録日時: 5年前

Re: 構造体について

#2

投稿記事 by aridai » 5年前

struct data{
int handleTitleimage;
int handlePlayerimage;
};
この部分はdataの定義ですが、

struct data picture;
この部分はdata型の変数pictureを宣言しているという認識でいいですか。

box
記事: 1751
登録日時: 9年前

Re: 構造体について

#3

投稿記事 by box » 5年前

aridai さんが書きました: これを3つのcppファイルの対応するヘッダファイルに書くことでしたが、
定義のしすぎなので、うまくいきません。
他にもいろいろ試したのですが、うまく行きませんでした。
定義のしすぎなのでうまくいかない、という状況がよくわかりません。
コンパイル時あるいは実行時に何かエラーメッセージが出ているのであれば、
そのすべてを見せてください。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

アバター
みけCAT
記事: 6311
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: 構造体について

#4

投稿記事 by みけCAT » 5年前

box さんが書きました:
aridai さんが書きました: これを3つのcppファイルの対応するヘッダファイルに書くことでしたが、
定義のしすぎなので、うまくいきません。
他にもいろいろ試したのですが、うまく行きませんでした。
定義のしすぎなのでうまくいかない、という状況がよくわかりません。
想像ですが、

コード:

struct data picture;
の多重定義ではないでしょうか?

一つの方法としては、龍神録プログラミングの館の宣言の仕方を工夫しようを参考にするといいかもしれません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

aridai
記事: 34
登録日時: 5年前

Re: 構造体について

#5

投稿記事 by aridai » 5年前

少し、考えたのですが、
load.cppでインクルードガードをつけたmain.cppをインクルードしてみました。

コード:

struct data{
int handleTitleimage;
int handlePlayerimage;
};
とmain.hに書き、

コード:

struct data picture;
はmain.cppファイル内に記述しました。
するとうまくいきいました。
説明がヘタですみません。

aridai
記事: 34
登録日時: 5年前

Re: 構造体について

#6

投稿記事 by aridai » 5年前

上の"load.cppでインクルードガードをつけたmain.cppをインクルードしてみました。"は間違いです。
main.hでした。

aridai
記事: 34
登録日時: 5年前

Re: 構造体について

#7

投稿記事 by aridai » 5年前

ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る