• ベストアンサー

既存のCプログラムをMS Visual C++へ移行して実行したい

同じような質問がでていましたら、すみません。 いままでWS(unix)で作っていたC言語のプログラムをWindowsで実行しようと しています。 Microsoft Visual C++ 6.0 Proを購入し、 新規でプロジェクトを作成するところで止まってしまいました。 「プログラムをコンパイルして、あるバイナリファイルを読み込み、 指定したファイルへ結果を書き込む」 という操作がしたいのですが、プロジェクトの種類はどれにすればいいのでしょうか? また、ファイルを読み込む際、メインと関数は別のファイルになっているの ですが、コンパイルはどのように指定すればいいのでしょうか? もうひとつ、今までargv[]で入出力ファイルを指定していました。 # (メイン)(入力ファイル) (出力ファイル)のように この処理はVC++でできるのでしょうか? VC++の入門の本を購入したのですが、Cのプログラムについては なかなか載っていないので困っています。 よろしくお願いします。

  • oddo
  • お礼率86% (174/201)

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

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.5

> プロジェクトは出来たのですが、***.cppと、StdAfx.hというファイルが > 出来ました。 VC6.0 は良く憶えてないのですが、プロジェクトを新規作成する過程で、MFC を 使う/使わないの選択がありましたか? もしあれば、「使わない」としてください。

oddo
質問者

お礼

a-kumaさん、アドバイスありがとうございました。 「MFCを使用するプロジェクト」という選択肢があって、 なぜかそれを選んでいました。 プロジェクトを作成し直して、「空のプロジェクト」を選択したら、 前に書いたファイルは出来ていませんでした。 本当に助かりました。ありがとうございました。

その他の回答 (4)

  • haporun
  • ベストアンサー率40% (230/562)
回答No.4

ファイルが複数あるなら、最初からプロジェクトがあったほうがいいです。 a-kumaさんの言うとおり、新規作成でWin32コンソールアプリケーションのプロジェクトを作ります。 ウィザードでは何も作らないように選択すると、ぷリコンパイル済みヘッダーがどうのこうののエラーはなくなります。 そのあと、ファイルの追加で必要なファイルを全部ぶっこんでからビルドすると、わずらわしいリンクとかも全部やってくれます。

oddo
質問者

お礼

haporunさん、アドバイスありがとうございました。 そうなんです、ファイルが複数あるのです。 プロジェクトを作成して、「空のプロジェクト」を選択したら、 前に書いたファイルは出来ていませんでした。 これでビルドできそうです。 本当に助かりました。ありがとうございました。

  • you-m
  • ベストアンサー率58% (190/327)
回答No.3

UNIX屋さんならば、コマンドラインのユーティリティを使った方が分かりやすいかもしれませんよ。 インストール先のbinディレクトリにVCVARS32.BATというバッチファイルがあります。 DOS窓を開いて、このファイルを実行すると必要な環境偏すが設定されますので、nmakeやcl(コンパイラ本体)、link等の開発に必要なユーティリティが使用できるようになります。

oddo
質問者

お礼

you-mさん、早速の回答ありがとうございました。 ヘルプでVCVARS32.BATの実行方法を見てみました。 割と簡単にできそうですね。 とりあえず、VC++上でやってみて、イザというときに使わせていただきます。 ありがとうございました。

  • haporun
  • ベストアンサー率40% (230/562)
回答No.2

プロジェクトを作らずに、そのファイルを読み込んで、ビルドしようとしたら、かってに適切なプロジェクトを作ってくれますよ。

oddo
質問者

お礼

haporunさん、早速の回答ありがとうございました。 これは、すべてのファイルを開いてからビルドを実行すればいいのでしょうか? それともメイン関数だけ開けばいいのでしょうか? あと、実行するときに、入出力ファイルを設定するにはどうすればいいのでしょうか? お礼になってなくてすみませんが、よろしかったら教えてください。

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

> プロジェクトの種類はどれにすればいいのでしょうか? コンソールアプリケーションを選択します。 > また、ファイルを読み込む際、メインと関数は別のファイルになっているの > ですが、コンパイルはどのように指定すればいいのでしょうか? プロジェクトにソースを追加します。 > もうひとつ、今までargv[]で入出力ファイルを指定していました。 > # (メイン)(入力ファイル) (出力ファイル)のように > この処理はVC++でできるのでしょうか? できますよ。

oddo
質問者

お礼

a-kumaさん、早速の回答ありがとうございました。 コンソールアプリケーションでプロジェクトが作れました。

oddo
質問者

補足

プロジェクトは出来たのですが、***.cppと、StdAfx.hというファイルが 出来ました。 Cプログラムのファイルを追加したのですが、 「fatal error C1010: プリコンパイル済みヘッダーの 検索中に予期しない EOF を検出しました。」 というエラーが出ています。 新しく出来たファイルになにか書き込みをしなければいけないのでしょうか? あと、 > もうひとつ、今までargv[]で入出力ファイルを指定していました。 > # (メイン)(入力ファイル) (出力ファイル)のように > この処理はVC++でできるのでしょうか? よろしければこの処理の詳しい方法を教えてください。 いろいろお願いしてすみません。

関連するQ&A

  • MS Visual C++で、Cのargv[]の使い方?

    以前「既存のCプログラムをMS Visual C++へ移行して実行したい 」という 質問をした者です。 既存のCプログラムをビルドするところまではいきました。 ****(.exe) inputfile outputfile というふうにプログラムを実行させたいのですが、 VC++の「実行」ボタンでは入出力ファイルを指定するところが わかりません。 (「実行」ボタンを押すと、DOS窓が開いて、「inputfile outputfile」 を入力する暇も無くエラーになって終了します) MS固有の関数はできるだけプログラムに入れたくないのです。 ソフト(VC++)の設定で入出力ファイルを指定する方法を 教えてください。

  • Visual C++ 2005 Express Edition, C をコンパイルするには?

    Express Edition で C をコンパイルする方法を御存知でしょうか? 軽く調べたところ、上の Menu から Project → (下の)Properties → Configuration Properties → C / C++ → Advanced → Compile as C Code を選べばできるとの書き込みがあったんですが、その後 Build してみても C がコンパイルされません。 例えば Program という Project を新規作成すると Program.cpp などいろんなファイルが自動生成され、 Program.c と保存してから Build してるのですが下の出力 Window には Program.cpp をコンパイル中と出ます。 それと、新規作成から Project でなく File を選択すると上の Menu に Build が出ないのですが その場合はどうでしょうか?? 今のところは Command Prompt の CL を使ってます。  C をコンパイルするだけなのにかなり複雑ですね。。。

  • Visual C++ 6.0 で作成したプログラムをVisual C++ 2005 でコンパイルしたい

    visual C++ 6.0 で作成したプログラムがあります。このソースリストをVisual Studio 2005 Express Edition の Visual C++ 2005 Express Editionでコンパイルしようとしましたが、#include <Windows.h> でエラーになって先に進みません。対応したWindows.hの入手方法教えてください。 それとも、そもそも、Visual C++ 2005 Express Editionでは昔のVC++のプログラムはコンパイルできないのでしょうか?

  • Visual C++ 実行ファイルが作れない

    Visual C++ 2005でプログラムを打ち込み、ビルドはできるのですが実行できません。 実行をクリックすると「デバッグで使用する実行可能ファイル名を指定してください」と表示されます。Projectsフォルダの中を見ても実行ファイルはできていません。なぜなのでしょうか? そしてもう一つ、VCの分かりやすい操作説明をしているページがあれば教えていただけませんか?

  • Visual C++について

    プログラミング初心者です。Visual C++ でプログラムを作る際、1つのプロジェクトに、複数のプログラムを作成する際、コンパイルするとエラーが出ます。これは、新たに、プロジェクトを作成して、新しく作る以外に解決する方法はないのでしょうか。 教えて下さい。

  • Borland C++ Builderで簡単なC言語プログラムの作成・実行

    Borland C++ Builderで簡単なCのプログラムを作り実行させるにはどうしたらよいですか? DOS窓上でコンパイルするのではなく、Borland C++ Builderのメニューから行いたいのです。 一応、「ファイル→新規作成→その他→Cファイル」でCのファイルは作成できるのですが、このファイルを「プロジェクト→ユニットのコンパイル」でコンパイルすることができません。 Formオブジェクト(?)を作成しておくとコンパイルできます。 Formは特に必要ないので、FormなしでCのファイルだけをコンパイルしたいのです。 DOS窓でのコンパイル・実行はできます。 事情があってBorland C++ Builderを使わなくてはなりませんので、他のIDEはこの際全く解決になりません。 よろしくお願いします。

  • Visual C++でのfelicaプログラム

    SONYのサイトで、SDK for NFC Starter Kit が公開されているので、ためしにFelicaカードの読み取りプログラムを作ってみようと思っています。 サンプルとして、C++が載っていましたので、Visual C++ 2010で動かそうとしましたが、 「error LNK2019: 未解決の外部シンボル __imp__initialize_library が関数 _wmain で参照されました」と表示されます。 プロジェクトのプロパティで、C/C++ → 全般 → 追加のインクルードディレクトリ もSDKのincludeのディレクトリを指定しましたし、 同じく リンカー → 全般 → 追加のライブラリディレクトリ もSDKのlibのディレクトリを指定しました。 エラーを解決する方法を教えてください。 よろしくお願いします。 なお、プログラムは簡単な下記のものでもエラーがでます。 #include "stdafx.h" #include <cstdio> #include <cstdlib> #include "felica.h" int _tmain(int argc, _TCHAR* argv[]) { initialize_library(); return 0; }

  • WinXP/2000でMS-Cを使うには?

    訳あって、昔MS-Cで開発したプログラムの一部を修正してコンパイルしようとしています。 WinXPのDOSプロンプトでMS-C自体のインストールはしたのですが、NMAKE、NMKによるコンパイルができなくてこまっています。 NMAKEを実行すると「fatal error U1065:オプション'Z'は無効です」と表示されます。 確かにNMAKE実行時はオプションとして/Ziを指定しているのですが、これが引っかかっているようです。 PC上にはVisual C++もインストールされているのでその中のNMAKEやNMKを実行しているのではないかと思って直接MS-Cのディレクトリの中のファイルを実行しまいたが同じ現象が発生しました。 どなたか同じような経験をされていて回避手段を見つけておられる方がおいでであればアドバイスをお願いできないでしょうか? (Win98のノートPCではVC++とMS-Cが混在していても問題なくコンパイルできたのですが・・・)

  • Visual C++2005のコンパイラー

    Visual C++2005を使っています。プロジェクトでプログラムを作った場合は、debuggingボタンが使用でき、コンパイルできるのですが、cppやhなど一つ一つ作ろうとした時、コンパイルすることができません。(debuggingボタンが使用可能にならない)これはどこかの設定により変えることはできるのでしょうか?

  • VC++のプロジェクトをUnixで実行できるようにしたい

    最近,C++の勉強を始めた素人です。 現在,Visual C++ 2008を使用しプログラムを組んでいます。 そのため,コンパイル等はビルドを実行するだけで簡単なのですが,実行の効率化のため作成したプロジェクトをUnix環境でも実行したいです。 そのためには、makefileを作成して,Unix環境でmakeすればよいと思うのですが,人から譲り受けたプログラムに組み込んで作成しているため、ファイルの数が大規模で、ライブラリなどもありmakefileをどう作ったらいいか分かりません。 素人にもわかりやすい、できるだけ簡単に、VC++のプロジェクトからUnix環境で実行できるmakefileを作成する方法はないのでしょうか? 回答よろしくお願いします。

専門家に質問してみよう