Visual Studio 2008でのC言語のサンプルコード実行につ

解決済みの質問

Visual Studio 2008でのC言語のサンプルコード実行につ

Visual Studio 2008でのC言語のサンプルコード実行について教えてください。
他のプログラミング言語の経験はありますが、C言語とVisual Studioの開発環境は初めてでつまずいています。
C言語で書かれたたくさんのサンプルコードを、
Visual Studioと、Visual Studio コマンドプロンプトでテストしたいのです。

「test」というソリューション(プロジェクト)の下に、「新しいクラス」を追加して、
サンプルコードをコピペして、順次デバックでテストしようとしたところ、
ひとつのプロジェクトの中でmainが重複してしまいエラーになります。
main重複でエラーは当たり前とはいえ、
サンプルコードごとにプロジェクトを作成するのは大げさすぎる気がすることと、
体裁にこだわらず、とにかくデバックで各コードが動くことを確認したいこと、
サンプルコードの書き出し(main関数)などを修正してサブクラスに書き直してデバックすれば
mainの重複とみなされず、手軽にVisual Studioでテストできるのではないかと
やり方を調べています。
2つ目以降を、サブクラスにすればmainの重複がなくなるでしょうか?
その場合、最初のmain関数
int main (int argc, char **argv)
をどう修正すればいいのでしょうか。

それとも、何か別のやり方で、Visual Studioで手軽にテストする方法があるでしょうか。
調べてみたのですが、具体策がわからず困っています。
今回初めてVisual Studioに触れましたが、今後長く使いたいので別の環境に逃げずいろいろ勉強したいと思っています。
もし何かお心当たりがありましたら、ぜひ教えてください。
宜しくお願い致します。

投稿日時 - 2010-07-29 22:48:44

QNo.6073714

すぐに回答ほしいです

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

たとえば

// Sample1.cpp 1個目ファイル
class Class1
{
public:
  Class1() { }
  virtual ~Class1() { }

  void funcA()
  {
    printf( "Hello\n" );
  }

};

int main( int argc, char* argv[] )
{
  Class1 objA;
  objA.funcA();
}

// Sample2.cpp 2個目のファイル
class Class2
{
public:
  Class2() { }
  virtual ~Class2() { }

  void funcB()
  {
    printf( "Good-Bye\n" );
  }

};

int main( int argc, char* argv[] )
{
  Class2 objB;
  objB.funcB();
}

といった具合でしたら

// Sample12.cpp
class Class1
{
public:
  Class1() { }
  virtual ~Class1() { }

  void funcA()
  {
    printf( "Hello\n" );
  }

};

/* このmainはコメントアウトする
int main( int argc, char* argv[] )
{
  Class1 objA;
  objA.funcA();
}
*/

class Class2
{
public:
  Class2() { }
  virtual ~Class2() { }

  void funcB()
  {
    printf( "Good-Bye\n" );
  }

};

int main( int argc, char* argv[] )
{
  // 起動時の引数により 実行対象を変更する
  Class1 objA;
  Class2 objB;
  if ( strcmp(argv[1], "1") == 0 ) {
    objA.funcA();
  } else if ( strcmp( argv[1], "2" ) == 0 ) {
    objB.funcB();
  }
}

-----
sample12.exe 1 で Class1を実行、 sample12.exe 2 で Class2を実行
といった具合にしてはいかがでしょう

投稿日時 - 2010-07-30 02:26:19

お礼

申し訳ありません、PCの不調でお礼が遅くなりました。
いただいたサンプルを参考に、書いてみたところうまく行きました!
丁寧にコードを記述くださいまして、ありがとうございました。
大変助かりました。

投稿日時 - 2010-08-05 21:52:40

ANo.3

2人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(2件中 1~2件目)

あ、見当外れの回答をしてしまったようです。
すみません。

main関数の重複はだめですので
2つめは名前を変えて(たとえば subとか)

void sub()
{

}

void main()
{
sub();
}

くらいでしょうか。

投稿日時 - 2010-07-29 23:26:47

お礼

ichhabehunger様

本当に、何度もありがとうございました。
後追いでいただいたこちらのコメントもとても助かりました。

投稿日時 - 2010-08-05 21:55:12

お礼

Cでのコンパイル法!!ありがとうございました!
こちらに質問を投稿して、本当によかったです。
回答くださいまして、またこのように派生の情報までくださいまして
ありがとうございました。

投稿日時 - 2010-08-05 21:56:54

あわせてチェックしたい
  • 【Visual Studio】プロジェクト間の変数のシェア ...
  • main関数のとる引数(argc , *argv[])の意味について ...
  • プログラミング(argcとargv) ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら