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に触れましたが、今後長く使いたいので別の環境に逃げずいろいろ勉強したいと思っています。
もし何かお心当たりがありましたら、ぜひ教えてください。
宜しくお願い致します。
No.1
- 回答日時:
Cでのコンパイル法!!ありがとうございました!
こちらに質問を投稿して、本当によかったです。
回答くださいまして、またこのように派生の情報までくださいまして
ありがとうございました。
No.2
- 回答日時:
あ、見当外れの回答をしてしまったようです。
すみません。
main関数の重複はだめですので
2つめは名前を変えて(たとえば subとか)
void sub()
{
~
}
void main()
{
sub();
}
くらいでしょうか。
No.3ベストアンサー
- 回答日時:
たとえば
// 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を実行
といった具合にしてはいかがでしょう
申し訳ありません、PCの不調でお礼が遅くなりました。
いただいたサンプルを参考に、書いてみたところうまく行きました!
丁寧にコードを記述くださいまして、ありがとうございました。
大変助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Visual StudioでDjangoのプロジェクト配下のappを作成する方法 1 2022/05/01 03:47
- C言語・C++・C# Microsoft Visual Studio Community 2019 タブキーが入力できない 1 2022/04/30 06:39
- Visual Basic(VBA) フレームワーク「4.8.1」で、[Sub Main]が動かない。助けて下さい 3 2022/11/14 15:40
- Visual Basic(VBA) VSコードでバックスペースキーが効かない(パイソン) 1 2022/11/09 04:00
- Java EclipseとVisual StudioをPC1台にインストールしただけではPCは重くならない? 3 2022/12/08 15:35
- Windows 10 Visual StudioとVisual C++ Build Toolsについて 1 2023/04/16 03:42
- C言語・C++・C# Switch向けにpcでc言語でゲームを作っているのですが、開発環境はWindows10のvisua 1 2022/04/02 07:04
- C言語・C++・C# visual studio 2019 についての質問です 1 2022/09/21 09:58
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- ソフトウェア VisualStudio のデータブレークポイントを有効にする方法 1 2023/05/01 09:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DWORDの実際の型は何でしょうか
-
typedef enumの使い方を教えて...
-
long型の定数の末尾にLを付ける...
-
2重定義って??
-
visualstudio C# テキストボッ...
-
C++のfor文について
-
変数の型を定義しなかった場合...
-
C++でboolにintの値を代入する...
-
intとINTの違いは?
-
【#define】 defineで定義した...
-
main.c:7:43: warning: implici...
-
プログラムの中で別のmainを呼...
-
配列を用いない最大値の求め方
-
namespace定義の使い方
-
enumについて
-
C++の(左辺値)参照を参照渡し
-
コンパイルすると error C1083 ...
-
GCCで暗黙の型変換の警告を出し...
-
main()とint main(void)の違い
-
値を返り値に返すのと参照渡し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DWORDの実際の型は何でしょうか
-
typedef enumの使い方を教えて...
-
C++のfor文について
-
long型の定数の末尾にLを付ける...
-
2重定義って??
-
関数の実体定義にヘッダファイ...
-
main.c:7:43: warning: implici...
-
変数の型を定義しなかった場合...
-
visualstudio C# テキストボッ...
-
ハンドルされていない例外が発...
-
C++でboolにintの値を代入する...
-
enumについて
-
構造体の宣言でエラーが出ます。
-
【#define】 defineで定義した...
-
C++ クラスをメンバにもつクラ...
-
0除算を判定したい
-
構造体の要素すべてに対する四...
-
値を返り値に返すのと参照渡し...
-
namespace定義の使い方
-
GCCで暗黙の型変換の警告を出し...
おすすめ情報