メイン関数を通らない

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
yamataro

メイン関数を通らない

#1

投稿記事 by yamataro » 15年前

こんにちは。C++でゲームを作っている中2です。
今アクションを作っていて、途中まではうまくいっていたのですが、
敵の処理を加えてからは、なぜかメイン関数を通らず無限ループしてしまうようになりました。
メイン関数を通ってすぐに、メッセージボックスを出すようにしたのですが、それすら表示されません。
つまり、

・メイン関数を通っていないのでウィンドウすら表示されない
・でもプログラムは動いているので新しくメイクすることができない
・だからいちいちwindowsを再起動しなければならない

ということです。この状態がずっと続いていますが、いまだ解決策が見えません。
こんなことってあるのでしょうか。
また、その場合のプログラムを強制終了させる方法などはありますか?
どうかよろしくお願いします。

Dixq (管理人)

Re:メイン関数を通らない

#2

投稿記事 by Dixq (管理人) » 15年前

環境や利用しているライブラリは何ですか?

メイン関数を通らないという事は無いと思います。※無い事が無いですね・・;
恐らく既に動いている実行ファイルがあるので、実行できていないだけではないでしょうか。

そんな時はタスクマネージャーで強制終了すると良いと思います。
Ctrl+Alt+Delでタスクマネージャーを起動し「プロセス」タブで自分が作ったものと同じ名前のプロセスを見つけて強制終了して下さい。

恐らく終了処理が正常に行われていないのだと思います。

dic

Re:メイン関数を通らない

#3

投稿記事 by dic » 15年前

失礼ながら
おそらく釣りかと・・・

御津凪

Re:メイン関数を通らない

#4

投稿記事 by 御津凪 » 15年前

> 失礼ながら
> おそらく釣りかと・・・

釣りかどうかはわかりませんが、原因の可能性を書いておきます。

グローバル変数にクラス型の変数があると、そのクラスの初期化がメイン関数を通る前に行われます。
そこの処理に問題があるのなら、この原因が起こる可能性があります。

たかぎ

Re:メイン関数を通らない

#5

投稿記事 by たかぎ » 15年前

> メイン関数を通らないという事は無いと思います。

そんなことはありません。
可能性を以下に列挙します。

1. プログラムの開始がWinMain等の場合には、mainは通らない。
 MFCのように、WinMainが隠蔽されている環境でよくある。

2. コンソールアプリケーションとしてコンパイルしたので、WinMainを通らない。
 MinGWではあり得る。

3. 非静的オブジェクトの初期化で永久ループに陥った。

Dixq (管理人)

Re:メイン関数を通らない

#6

投稿記事 by Dixq (管理人) » 15年前

> みつなぎさん

確かにそうですね。

> たかぎさん

確かにそうですね・・。

安易なコメントすみません;

> dicさん

どうしてそう思われるのです?

mila

Re:メイン関数を通らない

#7

投稿記事 by mila » 15年前

古いプログラムが動作中なのでメッセージボックスを表示するようソースを変更しても
新しいプログラムがビルドできていないということはないですか?
または、ReleaseとDebugをいつの間にか切り替えていたということはないですか?

いずれにしろ、実行するexeファイルのタイムスタンプを確認してみてください。

dic

Re:メイン関数を通らない

#8

投稿記事 by dic » 15年前

>どうしてそう思われるのです?
1.メールアドレスが無料(yahoo)
2.中2
3.古い単語を使っているので長くプログラムにかかわっていると
思われるが上の2に反する

4.多分、レスがないと思う
5.ちょっと前に変な記事があった(削除されたようですが
6.知識を得る過程が普通ではない
>・メイン関数を通っていないのでウィンドウすら表示されない
>・でもプログラムは動いているので新しくメイクすることができない
>・だからいちいちwindowsを再起動しなければならない

違ってたらすいません
私のレスは削除していただいてもいいです

知識を得る過程というより
知識のバランスがむちゃくちゃと言ったほうがいいでしょうか
画像

ookami

Re:メイン関数を通らない

#9

投稿記事 by ookami » 15年前

うーむ… たまたまステップ実行やタスクマネージャを知らなかったとか、あるいは、ソースのバックアップがなかったとかじゃないかと…

むちゃくちゃプログラミングに傾倒してる中二がいてもいいと私は思いますけどね。

ともかくyamataroさんの回答次第ですねw

Dixq (管理人)

Re:メイン関数を通らない

#10

投稿記事 by Dixq (管理人) » 15年前

確かに中学生のwindows使いがメイクするとはなかなか言わないかもしれませんが、Linuxから入った方かもしれませんし
釣るという行為の意味が私にはわかりません・・。

yamataroさんの回答を待ちましょう。

ookami

Re:メイン関数を通らない

#11

投稿記事 by ookami » 15年前

私も釣る意味がないと思います。

windowsでもBCC Developerではメニュー「プロジェクト→メイク」で(ry

yamataro

Re:メイン関数を通らない

#12

投稿記事 by yamataro » 15年前

テスト週間中で回答が遅れてすいません。
皆さんたくさんのコメントありがとうございます!

やはり2つのクラス型のグローバル変数に問題がありそうなのですが、
コンストラクタに無限ループは見つかりませんでした。
そこで宣言する位置を変更してみたのですが、なぜかそこの宣言のところで
「宣言の構文エラー」と出てしまいます(いい忘れましたがコンパイラはBorland C++ Compilerです)。
CからC++に変えたばかりなので原因がよく分かりません。
クラス型の変数はextern宣言できないのでしょうか?

ookami

Re:メイン関数を通らない

#13

投稿記事 by ookami » 15年前

なんとなくですが、

chara.h
enemy.h

の中でも、
#ifndef INCLUDED


#endif
してませんか?「INCLUDED」という名前が同じで
charaのクラス宣言が飛ばされていたりしないかなと。

よろしければ、ソースをまるごとアップしてもらったほうが
早いかもしれません。

ていうかテスト週間中にゲーム作っt(ry
いやいや、私も人のこと言えませんからねwwww

閉鎖

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