exeファイルが開かないのはなぜか?

このQ&Aのポイント
  • 質問者はプログラム初心者であり、Win32APIを使用してプログラムを作成しています。
  • リソース機能を使用してカーソルの変更やメニューバーを追加しましたが、exeファイルが反応しません。
  • コンパイルとビルドエラーはなく、ソースファイルの比較も行いましたが問題は解決していません。なぜ実行ウィンドウが表示されないのか、アドバイスを求めています。
回答を見る
  • ベストアンサー

exeファイルが開かないのはなぜか??

プログラム初心者です。 現在Win32APIを使ってプログラムを書いています。 そこで、リソースという機能を使ってカーソルの変更やメニューバーをプログラム実行ウインドウに付加してみたのですが、コンパイル、ビルドエラーが共に0であるのに、実行してもexeファイルが全く反応しなくなってしまいました。 しかし、リソース機能をつける以前のプログラムでは、実行画面がしっかりと出力されます。 原因を追究するために、ただいまソースファイルを比較検討しているのですがまだ問題が解決できていません。 コンパイル、ビルドエラーが0であるのに、今回のように実行ウインドウが出力されないということは、よくあるのでしょうか??また、もしあるのであれば、どんなことが考えられますか??アドバイスよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • qKAZp
  • ベストアンサー率47% (71/148)
回答No.1

まず、exeを実行させたときに、タスクマネージャにプロセスが出るかどうか確認してください。 プロセスが出れば、実行はされていますから、後はメインウィンドウの表示タイミング以前に何か問題が起きて、表示プロセスまで到達出来ていない可能性があります。 デバッガをお使いでしたら、最初からステップ実行させて行ってみて下さい。 きちんとコンパイル出来ていても、データ次第でループにはまり込むこともあります。 メッセージループを自前で書いてるようでしたら、メッセージの相互呼び出しが起きていないかとかチェックされるといいと思います。

C-Disney
質問者

お礼

迅速なお返事ありがとうございます。 すみません。初歩的なエラーでした。 ClassNameとCreatWindowの宣言文が違いました。 ご丁寧に教えていただき本当にありがとうございます。以後このような見落としがないように気をつけます。ありがとうございました!

関連するQ&A

  • cygwin1.dll を必要としないCのexeファイルを作りたいです

    はじめまして、shigure2005と申します。 私は普段UNIX上でC言語のプログラムを書いているのですが、 わけあってWindows上で動くようにする必要が出てきました。 そのプログラムをそのままcygwinでコンパイルしたところ コンパイルでき、実行ファイルも問題なく実行できたのですが、 このままですとcygwin1.dllが必要になってしまいます。 ですので、これがなくてもすむような別のコンパイル方法を 教えていただければと思ったしだいです。 過去ログを探って、MinGWについては試してみたのですが、 コンパイルは問題なく通るのに、なぜか実行ファイルを 実行すると、うまく起動できません。Mingwは以下のファイルを ダウンロードしてインストールしました。 mingw-runtime-3.8.tar.gz mingw-utils-0.3.tar.gz MinGW-4.1.1.exe w32api-3.3.tar.gz binutils-2.15.91-20040904-1.tar.gz mingw32-make-3.80.0-3.exe PATHは「C:\mingw/bin;C:\cygwin/bin」の順に通していて、 コマンドプロンプトでコンパイルし、コンパイル後、 コンパイルに用いたdllがcygwin1.dllでないのを確認して います。また、helloworldなど簡単なプログラムなら、 Mingwでもうまくコンパイルできてます。cygwinとMingwで コンパイル性能に大きな差などがあるのでしょうか? また、cygwinだけでも、Mingw-runtimeをインストール すれば、cygwin1.dllを必要としない形式にコンパイル できるという話を聞いたのですが、ご存知の方が いらしたら教えてください。 どうぞよろしくお願いします。

  • Microsoft Visual C++ 6.0でダイアログボックス作成後のEXE作成方法

    Microsoft Visual C++ 6.0を新規で開いて、「挿入」-「リソース」のリソースの挿入画面で、2つダイアログ(Dialog)を作りました。新規作成で作りましたので「Script1 – IDD_DIALOG1(Dialog)」「Script1 – IDD_DIALOG2(Dialog)」と2ウィンドウのタイトルバーに書かれてあります。さて、これらを保存しようとした時にプロジェクト名を決めないといけないみたいで、適当にtestと名づけました。プロジェクトを作成すると、「test.dsw」というプロジェクトワークスペースが出来ました。ここで、「Debug」というフォルダが作成されましたので、このフォルダ内にEXEファイルを作成して、EXEを実行して2つのウィンドウを上手く機能も付けてアプリケーションを作ろうと思っているのですが、コンパイルすると 『 プロジェクト 'test - Win32 Debug' 用の中間ファイルおよび出力ファイルを削除しています。 --------------------構成: test - Win32 Debug-------------------- リソースをコンパイル中... リンク中... LINK:error LNK2001:外部シンボル "_WinMainCRTStartup" は未解決です Debug/test.exe : fatal error LNK1120: 外部参照 1 が未解決です。 link.exe の実行エラー 』 と、ドッキングビューに表示されています。 どのようにしたら、EXEを作成できて実行できるか、対策案をお願いいたします。

  • exeファイル変換

    Javaでプログラムを作っていますが、これをWindowsのexe 形式に変換するフリーソフトはありますか? または現在SWTを使って: java -classpath ./swt.jar;. swtTest のように実行しているのですが、これをjarファイル1つにまとめて、 ダブルクリックするだけで、実行できるようにするコンパイルの 方法はありますか? よろしくお願いします。

    • ベストアンサー
    • Java
  • LISPプログラムをexeにしたい

    UbuntuでLISPプログラムを書いています。 eclというのを使ってコンパイルすることでスタンドアロンで実行できるファイルはできました。 でもこれはLinux上で実行できるものでWindowsでは使えません。 LISPで書いたプログラムをexeファイルにしてWindows上で使う良い方法はあるでしょうか? もしWindows用のソフトを使えば簡単だと言うならWindowsを使った方法でも構いません。

  • fortran a.exe システムエラー

    プログラミング初心者です。  コンパイルした後、a.exeファイルはつくられるのですが、いざプログラムを実行しようとすると     ウィンドウタイトル:「a.exe -システムエラー-」   本文:コンピュータにlibgfortran-3.dll がないのでプログラムを実行できません。      プログラムを再インストールしてください。     のようなエラーが出ます。        どうすればいいのでしょうか?

  • 他人のプログラムを実行すると、「実行できません」のエラーが出ます

    VisualC++初心者です。 移植のため、他人のプログラムをそのまま貰って解析しろと言われています。 ところが、そのままビルドして実行しても、ビルドでエラーは出ないのですが、「プログラムを実行できません」メッセージが出てしまいます。ステップ実行しようとすると、「*.exeファイルが見つかりません。」エラーが出ます。 リソースでSDIのDialogBoxを持っていますが、ソースはすべて拡張子.cで.cppファイルは有りません。 とっかかりが掴めず困っています。 どうすれば実行できるようになるでしょう?

  • Hello,Worldの.exeファイル

    かけだしです。第一歩の「Hello,World」(単なるテキスト出力)のコンパイル後objファイルとexeファイルができますが別のPCにexeファイルをコピーして実行しても実行できません。どうすれば別のPCで実行できますか?よろしくお願いします。

  • C++のソースをコンパイルしてできた実行ファイル

    のトラブルです。ちなみにプログラミングはかなりの初心者です。 サンプルソース等をコンパイルして実行ファイルを作成しても、実行ウィンドウが固まってしまいます。 どのプログラムでコンパイルしても同じです。二台のPCのVisual C++でやってみましたが(VistaデスクトップとXPノート)、どちらでもビルドが正常終了した後実行ファイルを確認するとファイル名の表示されたウィンドウが真っ白のまま固まってます。borlandのC++Builderで作成した実行ファイルも実行ウィンドウが同じ状態になりました。CD-ROM添付のサンプル実行ファイルだけはしっかり表示されました。 猫でもわかるゲームプログラミングで勉強しようとしています。 どなたか分かる方ご回答お願いしますm(_ _)m

  • 【C#】リソースファイルの埋め込みと書き出し

    C#初心者です。 アクセスの空データベースファイル(.accdb)を.exeに埋め込んで、必要に応じてファイルとして出力したいのですが、その方法がわかりません。 埋め込み方法は画像ファイルと同じように[追加]→[既存の項目]からリソースとして読み込み、ビルドアクションプロパティを[埋め込まれたリソース]に設定すれば、それでよいのでしょうか? また、埋め込んだファイルをファイルとして出力する場合はどうすればよいのでしょうか? 本当ならわざわざリソースとして埋め込むのではなく、空の.accdbをプログラムで生成できればよいのですが、もしご存知でしたらそれもご教示ください。 よろしくお願いします。

  • exeファイルはどのdllを参照すべきか、知っているのでしょうか。

    dllとは、プログラムが実行時に参照するものですよね。 よく使われる機能があらかじめ作られているものですよね。 私はC言語しか知らないので、C言語でプログラミングすることで話を進めさせてください。 (とは言っても、ごく初歩的なプログラムが組めるだけの素人です。) OSはWindowsということにします。 C言語は、関数の集まりでソースが書かれています。 dllも、中身に関数の実体が記述されている、そういうイメージでしょうか。 私がもっと勉強して、複雑なプログラムを組んだりすると、 「あ、これはdllに実体がある機能だから、いちいち実装を書かなくてもいいんだな」 と考えて、ソースファイル( ~.c )の中でその関数を使うだろうと思います。 私がよくわからないのはここからです。 dllにある関数をソースで使って、無事コンパイルして、さあリンクしてexeを作りましょう、 というときに、リンカ(リンクを行うプログラム)は、 「そんな関数、実体がないぞ」 って文句を言ってこないのでしょうか。 いや、リンカは、dllに実体がある関数だということを知っているはず。 でもそれって、いちいち 「この関数はどこどこにある ○○.dll というdllに書いてあります」 というふうに、リンカに教えてあげなくてはいけないのでしょうか。 (それってまさか、ソースに書くわけじゃないですよね? ) それから、 exeファイルっていうのは「この機能はdllに行わせる機能だ」ということを知っているのでしょうか。 dllに行わせる機能だということを知っているとしても、 どのディレクトリにある なんと言う名のdllに その機能が書かれていることまで知っているのでしょうか。 (でもそこまで知っていたら逆に、ディレクトリ構成の違うマシンでは実行できなくなってしまうし。) そういうような原理的なことを教えてください。