Visual Studio 2008でC言語のサンプルコードを実行する方法

このQ&Aのポイント
  • C言語のサンプルコードをVisual Studio 2008で実行する方法について教えてください。他のプログラミング言語の経験はありますが、C言語とVisual Studioの開発環境は初めてでつまずいています。
  • main関数の重複エラーを回避するために、サブクラスに書き直して実行する方法はありますか?サンプルコードを順次デバッグでテストしたいのですが、同じプロジェクト内でmainが重複してエラーとなってしまいます。
  • Visual Studioで手軽にC言語のサンプルコードをテストする方法はありますか?初めて使うため具体的な手順がわからず、困っています。今後もVisual Studioを使いたいので、ぜひ教えてください。
回答を見る
  • ベストアンサー

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に触れましたが、今後長く使いたいので別の環境に逃げずいろいろ勉強したいと思っています。 もし何かお心当たりがありましたら、ぜひ教えてください。 宜しくお願い致します。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答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を実行 といった具合にしてはいかがでしょう

rosafilipes
質問者

お礼

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

その他の回答 (2)

回答No.2

あ、見当外れの回答をしてしまったようです。 すみません。 main関数の重複はだめですので 2つめは名前を変えて(たとえば subとか) void sub() { ~ } void main() { sub(); } くらいでしょうか。

rosafilipes
質問者

お礼

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

回答No.1
参考URL:
http://www.katch.ne.jp/~m5uahu82/Contents/VisualStudio/CbyCPPExpress.pdf
rosafilipes
質問者

お礼

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

関連するQ&A

  • Visual C++ 2010 について

    プログラミングを始めようとVisual C++ 2010をインストールしました。 さっそく新規作成→プロジェクト→全般→空のプロジェクト→Sample01でファイルを作りました そのあと追加→新しい項目→コード→C++ファイル→Sample01.cとしてソースコードを次のように入力しました #include <stdio.h> {    int main(void) printf("ようこそ"\n"); return 0: } このあとソリューションのビルドをしてからデバック開始をしたら、一瞬コマンドプロンプトが開いたと思ったらすぐ閉じてしまいます。 学校の課題をやりたいの出来ません 泣 回答よろしくおねがいします!!

  • Visual_Studioの使い方(初心者です)

    Visual_Studioの使い方(初心者です) お世話になります。C言語からC++を覚えて、とうとうVisual_Studioを買いました。 今まで、1つのファイルでテストファイルを作っていたのでよかったのですが、 いちいちプロジェクトを作成して、テストファイル(test01.c,test02.c)を ビルドするのは、手間がかかります。できれば、一つのプロジェクト内で、 個別にビルドする方法を教えてください。

  • visual studio 2005でC言語は学べるのか?

    こんばんは。 プログラミングを学ぼうと考えている素人です。 visual studio 2005 academic editionというソフトでC言語を学ぼうと思ったのですが、中に入っているソフトがCではなく、C#でした。 調べてみると、CとC#は違う様で(具体的に何が違うは分かりませんでしたが)、 C言語が学べるのか不安になって質問しました。 visual studio 2005でもC言語を使用することは可能なのでしょうか? 陳腐な質問ですが、何卒よろしくお願いいたします。

  • C言語のPathFileExistsについて

    visual studio 2010、C言語でPathFileExistsを使って ファイル有無のチェックをしようと試みましたが、 コンパイルエラーになってしまいました。 環境はwindowsXP、SP3です。 参考にしたいくつかのサイトでは、visual studio 2010ではPathFileExistsを使って ファイル有無をチェックできると書いてあったのですが、 visual studio 2010でもC言語だとPathFileExistsは使えないのでしょうか? TEST.C #include <stdio.h> #include <shlwapi.h> int main() {   char path[128];   sprintf( path, "c:\\tmp.txt" );   if ( PathFileExists(path) ){     printf("ファイル有\n");   }   else{     printf("ファイル無\n");   }   return 0; } TEST.OBJ : error LNK2019: 未解決の外部シンボル __imp__PathFileExistsA@4 が関数 _ main で参照されました。 TEST.EXE : fatal error LNK1120: 外部参照 1 が未解決です。 NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 10.0\VC\BI N\link.exe"' : リターン コード '0x460' Stop.

  • Visual Studio2003について

    古いバージョンですみませんが、Microsoft Visual Studio .NET 2003 を持っています。 バージョンアップはしていません。 既存のコード ファイルからprjファイル作成するにはどのようにすると出来るでしょうか? ネットにはVisual Studio 2005からは、[ファイル] メニューの [新規作成] を選択し、[既存のコードからプロジェクトを作成]で既存コード ファイルからの新しいプロジェクトの作成ウィザードが出るようですが、Microsoft Visual Studio .NET 2003の、[ファイル] メニューの [新規作成] を選択しても、[既存のコードからプロジェクトを作成]が在りません。インターネットから持ってきた、既存のcのファイルでprjファイルがありません。 Microsoft Visual Studio .NET 2003 でprjファイルを作りたいのですが、どのようにすると出来るのでしょうか? こちらは初心者ですので丁寧な説明、ご教授くだされば幸いです。 宜しくお願いします。

  • C++ memory.dllサンプルが実行できない

    http://www.vector.co.jp/soft/win95/prog/se358509.html のmemory.dllを用いてプロセスメモリを弄るソフトを作ってみようと思い まず同梱されているサンプルをVisual Studio 2010 Professionalでコンパイルしてみようとしたのですが (サンプルの場所はダウンロードしたZIP内の\サンプル集\C言語\ のsample.cpp Memory.hです。) 1>sample.obj : error LNK2019: 未解決の外部シンボル _WriteMemory@16 が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。 1>sample.obj : error LNK2019: 未解決の外部シンボル _ReadMemory@16 が関数 "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。 1>C:\Users\hogehoge\Documents\Visual Studio 2010\Projects\testtesttest\Debug\testtesttest.exe : fatal error LNK1120: 外部参照 2 が未解決です。 と出力され、コンパイルされません。 何か問題があると思い、Google検索で色々調べたのですが分かりません・・・ 宜しければご助言を頂きたいです。お願い致します。

  • Visual Studio 2017C#

    下記のVisual Studio 2017 C# 19行目のXの定義がありません。 と出ました。 11行目で定義していると思うのですけど…。 どういうことなのか教えてください。 ご多忙のところ恐れ入りますが、ご回答のほどよろしくお願いします。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace jump25 { class Test { public int x = 10; } class Program { public static void Main(string[] args) { Test obj = new Test(); int y = object.x; Console.WriteLine(y); } } }

  • visual c++環境でのコンソールアプリ実行について。

    visual c++の開発環境を使ってC言語の勉強をしようと思っています。 下記のような手順でデバッグを実行しようと思っているのですが、上手くいかずこまっています。 1 Sample.cを、あらかじめ、/Visual C++ 2005/Projects/Sample/Sample.cのように格納しておく。 2 統合開発環境で、「ファイル」→「新規作成」→「既存のコードからプロジェクトを作成」を選択する。 3 既存のコードからプロジェクトを作成ウインドウが開き、「作成するプロジェクトの種類を入力してください」が「Visual C++」になっているので、そのまま「次へ」をクリックする。 4 プロジェクトの場所とソースファイルの指定ウインドウで、「参照」ボタンを利用して、「プロジェクトファイルの場所」欄に、「・・・/Projects/Sample」と入れ、「プロジェクト名」欄に「Sample」と入力する。「次のフォルダからプロジェクトにファイルを追加します」のチェックをそのままにして、「次へ」をクリックする。 5 プロジェクト設定の指定ウインドウで、「プロジェクトのビルド方法」の「Visual C++を使用する」のチェックをそのままにし、「プロジェクトの種類」を「コンソールアプリケーション」にする。それ以降にはチェックを付けないで、「完了」をクリックする。 6 統合開発環境の「ソリューションエクスプローラ」部から「Sample.c」を選んでダブル・クリックすると、コードが表示される。 7 これでデバッグするとコンソール(Visual c++のDOS窓)が一瞬表示され消えてしまいます。 間違っている所やこのようにしたらなど、意見よろしくお願い時ます。

  • visual studioのC言語とフリーソフトのC言語ツールの違い

    前にvisual studioでC言語の勉強を行っており、再び始めようかと思っているものです。 少し疑問に思ったのですが、visual studioのC言語とC言語のフリーソフトの違いは何でしょうか?

  • Visual Studio 2008コマンドプロンプトのinclude

    Visual Studio 2008コマンドプロンプトのincludeファイルのパス設定について、教えてください。 C言語で書かれたOpencvのサンプルコード「ヒストグラムの描画」を実行するとエラーが出ます。 http://opencv.jp/sample/histogram.html#hist 「fatal error C1083: includeファイルを開けません。'cv.h':No such file or directory.」 画像を表示する、という別のコードはVisual Studioで実行できましたので、Visual Studioの環境設定は正常ではないかと思います。 環境変数のパスの設定や(マイコンピュータ→システムのプロパティ→詳細→環境変数)、Visual Studioでのライブラリやインクルードファイルの設定も完了しており(ツール→オプション→プロジェクトおよびソリューション)、Visual Studio 2008のIDE環境でビルトすると、別のサンプルコードは実行できました。このふたつめのサンプルコードは一瞬コマンド画面が表示されて、何も結果が出ずに消えてしまいます。 なぜでしょうか? D/Lし直したり、設定しなおしましたが、事象は変わらずとても困っています。 もし何かお心当たりがあればぜひ教えてください。 どうぞ宜しくお願い致します。

専門家に質問してみよう