- ベストアンサー
C++ソースコンパイルで実行ファイルのトラブル!初心者向け
- プログラミング初心者がC++のソースをコンパイルして実行ファイルを作成する際にトラブルが発生しています。
- 実行ウィンドウが固まってしまい、どのプログラムでコンパイルしても同じ現象が起きています。
- 調査した結果、Visual C++やC++Builderで作成した実行ファイルも同様の問題が発生していますが、CD-ROM添付のサンプル実行ファイルだけは正常に表示されます。猫でもわかるゲームプログラミングで勉強しています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
「固まってしまう」というのはどんな状態ですか? 何も描画していない(描画するコードを書いていない)とか、 描画方法が正しくないので、ウィンドウクラスに登録した背景だけが描画されているとかではありませんか? # WM_PAINTに何も書いていなくて、ウィンドウ乗せて動かしたら消えた…とか。
その他の回答 (2)
- hisappy
- ベストアンサー率46% (184/392)
mainが何かの処理を待ったままになっている。 画面の再描画処理が行われていない。 実はステップ実行なので止まってて正解。 そもそも画面表示に関する処理が無い。 ペイント系統のサンプルなので、真っ白なキャンバスが表示されているので正解。 ロジックを手打ちで入力しており、どこかの入力ミスで無限ループ状態。 使用ライブラリがバージョン依存するもので、使っているのは未対応のライブラリだった。 実行されるとは思っていなかったプログラム君が顔面蒼白となっている。 コンパイルの環境設定が豪快に間違っている。 プログラム君の気分が乗っていない。 そもそも画面に描画するものが無い。 さて、どれかそれっぽい答えはありましたでしょうか?
お礼
色々なケースを考えてくださってありがとうございます。 コンパイルの環境設定が豪快に間違っていたようです。
ソースがどこか間違っているからでしょう、としか言いようがないですね。 短いソースなら全部掲載すれば、回答してくれる人がいるかも。
お礼
すみません、ソースというかやり方から間違っていたようです・・・ しっかり読んで考えてやり直してみたら実行できました!どうもありがとうございます。
補足
プロジェクトを新規作成でWindowsアプリケーション、空のプロジェクトで始め、サンプルのソースをコピー&ペーストで貼り付けたんですが、 1>new1.cpp 1>c:\documents and settings\REI\my documents\visual studio 2008\projects\new1\new1\new1.cpp(58) : error C2440: '=' : 'LPCSTR' から 'LPCWSTR' に変換できません。 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 1>c:\documents and settings\REI\my documents\visual studio 2008\projects\new1\new1\new1.cpp(85) : error C2664: 'CreateWindowExW' : 2 番目の引数を 'char [6]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照) 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 1>ビルドログは "file://c:\Documents and Settings\REI\My Documents\Visual Studio 2008\Projects\new1\new1\Debug\BuildLog.htm" に保存されました。 1>new1 - エラー 2、警告 0 となります。すみません、ソースは文字数の関係でUPできないのですが、 http://www.wikihouse.com/x86clocker/index.php?%A4%CF%A4%B8%A4%E1%A4%C6%A4%CEVC%2B%2B#a64b6bd7 のHello Worldのプログラムでも、 #include <stdio.h> int main() { printf("Hello World\n"); return 0; } 1>MSVCRTD.lib(crtexew.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。 1>C:\Documents and Settings\REI\My Documents\Visual Studio 2008\Projects\new1\Debug\new1.exe : fatal error LNK1120: 外部参照 1 が未解決です。 となってしまい、つまり白紙からプログラム書いた場合、悉くコンパイルできないんだろうな~という結論に至っております。 どうしたらいいんでしょう。
お礼
部分的にテキストの開発環境の使い方を見たやり方に、サンプルのソースファイル貼り付けとか、間違ったやり方をしてました。 既存のソースからプロジェクトを作成とかにしたら、ちゃんと実行画面の表示ができました。 cppのファイル名だけ表示された白いウィンドウが表示されてプログラムが何も実行されないと言う状態だったんですけど・・・自分に問題があったようなので。お騒がせしてすみません。