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

このQ&Aに関連する最新のQ&A

A 回答 (4件)

メニューの 「プロジェクト(&P)」から、「設定(&S)」を選択して、「デバッグ」タグをクリックして、「デバッグセッションの実行可能ファイル(&E)」があっているかどうか確認してみてください。

普通はデバッグフォルダの中に*.EXEファイルがあると思いますので、そこも確認してみてください。
    • good
    • 0
この回答へのお礼

ありがとうございました。若干自己フォローです。
ビルドが出来るのに、設定されたexeファイルができないので悩んでいました。
もともと、Aフォルダにあるワークスペースでビルドすると、勝手にBフォルダを作成してA,B両方で動作するような複雑なプログラムだったのです。
指摘された「プロジェクト(&P)」の直下に、「アクティブプロジェクトに設定 1.B 2.A」というメニューがありました。
今まで気にしていなかったのですが、今回デフォルトでないBを選択してビルドすると、exeファイルが作成されました。
それにしてもVCの実務ベースプログラミングは、入門書との差が有り過ぎるように思います。先が思いやられる。

お礼日時:2001/03/08 13:41

素人なのでよく分かりませんが、パスとかが通っていないのではありませんか?


MS-DOSプロンプトを開いてそのディレクトリに移動して直接実行してみてはいかがでしょうか?
ところで、Hello, World!とかの普通のプログラムもできないのでしょうか?
それができないと、コンパイラとかの問題ではないと思います。
読んでいて、ふとそんな感じがしましたので。ぜんぜん的外れだったらごめんなさい。
    • good
    • 0

こんにちは。



その他人のプログラムは実行型ですか(exe)ですか?
それとも、DLLもしくはActiveX(OCX)の形ですか?

exe型の場合は、ビルドが成功しているのであれば、どこかに実行ファイルが
できているはずですから、プロジェクトの設定のデバッグ欄で実行可能ファイルの
パスを修正してください。

DLLもしくはActiveXの場合は、他のプログラムに付随して動作しますので、
そのままでは動きません。
詳細を元の開発者に聞きましょう。
ただ、DLL、ActiveXの連携動作がわかっていないと理解しがたいときがありますのでまずはそちらの勉強をしましょう。

では。
    • good
    • 0

移植のためということですよね。


何から、Windowsへの移植かは分かりませんが、普通そのままビルドできたからといっても動かないのでは?
プログラムを見て、仕組みを理解してから、VC++でWindows用に書き換えられたら如何でしょう。

この回答への補足

C++で書かれたものを読んで動かして別の組み込み用言語に移植する予定です。
もっと一般的な質問に言い換えます。
例えば、C言語で書かれた参考書のサンプルプログラムを、そのままVisualC++に書き写して実行しようとしても、同じような現象になります。
きっと私が初心者で対処の仕方が判らないだけだとは思うのですが。
WinMainのエントリーポイントを作らなければいけないとか、そういうことかなと漠然と考えているのですが、具体的対処法が思い付きません。

補足日時:2001/03/08 11:47
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QマイクロソフトVisualC++使用。コンパイルとビルドにエラーはないのに実行できない。

超初心者です。
今、本を見ながら練習問題をこなしている状況なんですけど。
足し算のプログラムをつくりましょう、ということで
main()
{
int c = 0, i= 0;

while ( i <5 ) {
i++;
c = c+ i;
}
}
と入力し、コンパイルしビルドしました。両方ともエラーもなく終了し、いざ実行すると『PressAnyKey。。』のみ表示され計算もなにもなく終わってしまうのです。いったいなにが足りないのでしょう・・。

あと、C言語のエラー集などを載せているサイトをご存知だったら教えてください。超初心者にとって一番頼りになるのは、うまくいっている状況を載せられるのではなく、エラーになったときの状況をどうにかしてくれるところなので・・・。
よろしくお願いします。

Aベストアンサー

表示がされてないだけで、実行はされてるんじゃないでしょうか。
whileループの最後に、
printf("%d %d\n", i, c);
とか付け加えてみたらどうでしょう。

Qc言語のプログラムでこの実行結果を出したいのですがどうプログラムすればできますか? 続きの画像は補

c言語のプログラムでこの実行結果を出したいのですがどうプログラムすればできますか?

続きの画像は補足でだします

Aベストアンサー

#include <stdio.h>
#include <stddef.h>

void calc_average(int class[][2], size_t n);

int main(void) {
 int class[4][2] = {{0, 0}};
 calc_average(class, sizeof(class)/sizeof(class[0]));
 return 0;
}

void calc_average(int class[][2], size_t n) {
 int i, j, k;
 printf("クラス(1〜3) --> ");
 scanf("%d", &i);
 if (i <= 0) {
  for (j = 1; j < n; j++)
   printf("クラス %d の平均点 : %f\n", j, ((double)class[j][1])/class[j][0]);
 } else if (i > 0 && i < 4) {
  printf("点数 --> ");
  scanf("%d", &k);
  class[i][0] += 1;
  class[i][1] += k;
  return calc_average(class, n);
 } else
  return calc_average(class, n);
}

#include <stdio.h>
#include <stddef.h>

void calc_average(int class[][2], size_t n);

int main(void) {
 int class[4][2] = {{0, 0}};
 calc_average(class, sizeof(class)/sizeof(class[0]));
 return 0;
}

void calc_average(int class[][2], size_t n) {
 int i, j, k;
 printf("クラス(1〜3) --> ");
 scanf("%d", &i);
 if (i <= 0) {
  for (j = 1; j < n; j++)
   printf("クラス %d の平均点 : %f\n", j, ((double)class[j][1])/class[j][0]);
 } else if (i > 0 && i < 4) {
  pri...続きを読む

QVisualC++ ビルド失敗

#include<stdio.h>

int main(){
printf("Hello World\n");
return 0;
cin.ignore();
}

>>cin.ignore();
これで画面がすぐに消えないようにしたいのですが、定義されてない識別子と出ます。
教えてください・・・よろしくお願いします。

Aベストアンサー

本来の目的は、エクスプローラー(?)から実行ファイルを実行させると一瞬だけ表示されて直ぐに閉じられてしまうので表示を暫く維持させたい。 といったことかな?

簡単な方法として一つは


#include<stdio.h>

int main(){
printf("Hello World\n");
getchar(); // この行を追加すれば ENTER が入力されるまで表示されたままになります。
return 0;
}

もう一つの方法は、現状エラーとなっている cin.ignore(); のラインをプログラムから削除してビルドしてコンソールウインドウで実行させる。

ウインドウズ(XP)のスタートメニューから「ファイル名を指定して実行」から「cmd」を入力して実行してコンソールを開いて、そこでビルドしたプログラムを実行すれば表示される内容を確認できます。

QVisualC++でのビルドのエラー

VisualC++.NET 2003 を使っているのですが,
ビルドしようとすると,

error C2143:構文エラー:';'が'文字列'の前にありません。

fatal error C1075:左側中カッコ'{'に対応するものが
'c:\documents and settings\*** … ***\Form1.h(5)'
で見つかる前にEOFが検出されました。

と出ます.excpt.hの36行目(extern "C" {)です.

調べると同じようなエラーもあるみたいですが,
http://www.thescripts.com/forum/thread280397.html
どうしたらよいか分かりません.
どなたか詳しい方よろしくお願いします.

Aベストアンサー

コンパイラの言うとおり。
構文エラーなんじゃない?
ただ、どこでそれが抜けているのかはソースをよく見ないと判らない
「;」を忘れていたり「)」を付け忘れたりしてるだけだと思う

おちついて よーーーーーーーく 確認してみたらいいよ。
それか 括弧だったら括弧対応をチェックするツール(テキストエディタによく付いてる)とか使ってみたらいいかも。

Qmain.cpp以外のcppの追加について

VisualC++を使用し、プログラムを作っています。
そこでプログラムを整理しようと思うのですが、
main.cpp以外もcppを作成し、プログラムを分割することが可能ですよね?
cppファイル自体は作ることができるのですが、
作った後どのようにしてmain文から呼び出し?をするのか具体的なことがわかりません。

どのようなワードで検索が引っ掛かるのかもわからないので
掲載しているHP、もしくはやり方を教えてください。

私自身理解が足りていないので、
説明もあやふやなものになっていますがよろしくお願いします。

Aベストアンサー

参考まで…。

http://blog.livedoor.jp/tek_koc/archives/50198846.html


人気Q&Aランキング

おすすめ情報