• ベストアンサー

C++で書いたソースをCになおす方法

VISUALC++のWIN32で現在C++を使ってソースを書いて 動かせるのですが このソースをC言語になおして 同じように動かしたいと思っています 何かいい方法ありますか? 直しかたなどあれば教えてください

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

  • ベストアンサー
  • Interest
  • ベストアンサー率31% (207/659)
回答No.1

> VISUALC++のWIN32で現在C++を使ってソースを書いて動かせるのですが MFCは使っていないということでいいですよね? 現在「クラス」を使っていますか? C++固有の機能は使っていますか?(例:STL, テンプレート,etc) > このソースをC言語になおして同じように動かしたいと思っています どういう目的でC言語に直したいと思ったのですか? 極端な話、現行の処理をC言語の関数でラッピングするのは反則?

その他の回答 (4)

  • hisappy
  • ベストアンサー率46% (184/392)
回答No.5

エラーメッセージとちゃんと会話できる人ならではの手段ですが Cのコンパイラを通して、 エラーになった部分を修正していく ってのも一つの手です。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

C に直す必然性がよくわからないんですが. template とか例外とかを使ってなければ cfront でなんとかなるかも....

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

比較的簡単に試してみることができるのは、Lightweight C++でしょうか。 対応しているC++の文法は標準C++でもなければ、VC++のそれでもありませんが、テンプレートや例外処理を使っていなければ、少しの修正で何とかなる可能性はあります。 もう一点問題があるのは、出力されるC言語のコードは、実質的にGCC用だということです。これは、VC++の代わりにMinGWでも使えば何とかなるでしょう。もしかすると、CIL(http://manju.cs.berkeley.edu/cil/)にかければ多少ましになるかも知れませんが、試したことはありません。 参考URLを見ればわかるように、ものすごいソースが吐き出されますが、GNU indentなどで整形してやれば、多少は見やすくなるはずです。 まあ、いずれにしても細部の動作に関しては何ともいえないので、動作検証は完全にやり直しになるはずです。

参考URL:
http://students.ceid.upatras.gr/~sxanth/lwc/
  • marori3
  • ベストアンサー率25% (23/91)
回答No.2

理論上はC++のソースはCへ直すことが出来ますが(元々トランスレータとして設計されたため) しかしC++からCへの変換するソフトというのは聞いたことがありませんし、 あったとしても相当なまでに「汚い」ソースになるでしょう。 VisualC++でのソースがどの程度の規模かは知りませんが、 手作業で、ソースからではなくアルゴリズムからCに書き直したほうがよいと思います。

関連するQ&A

  • C言語のソース

    他人が書いたC言語のソースを見てC言語の勉強をしようと思っていますが、インターネットで探しても、なかなか見つかりません。どなたか、Cのソースを公開しているサイトを教えていただけないでしょうか。お願いします。

  • Visualc++とc++

    私はクライントファイルの解析などができるようになりたくてプログラミン言語の勉強を始めようと思ったのですかWin32API上で動くプログラム言語ならなんでもよいと友人から聞いたのですがファイルの解析などができるようになるにはVisualc++とc++どちらのほうが習得しやすいんでしょうか? 

  • Cのソースを出す、 Latexで

    今C言語のレポートをしているのですが、LatexでCのソースをそのまま 表示されるというのを聞いたことが あるのですがどうしたらいいのでしょうか? いろいろ探しているのですが見つかりません。 お願いします。

  • C言語

    今、C言語でプログラミングをしています。VisualC#かVisualC++をはじめようと思っています。どちらの方が移行しやすいかを、誰か教えてください。

  • C言語を習う場合は

    C言語を習う場合は Microsoft VisualC++かMicrosoft VisualC#をインストールするのですか? これ以外のソフトでもできるのでしょうか? ということは もしこの二つでしかできないなら C言語というのはマイクロソフトが開発したのでしょうか?

  • C++とCの互換性

    私は今C言語を勉強しているのですが、C言語の参考書にCのコンパイラではなく、C++のコンパイラの使い方が載っていました。これはどういうことなんでしょうか?C++のコンパイラでCもコンパイル出来るということなんでしょうか? ちなみに載っていたコンパイラはMicrosoftのVisualC++です。

  • VIsual C++6.0のソースを書くところについて

    プログラミング言語の経験は全くない初心者です。 まだ何をつくろうとは考えていませんが、 将来的には簡単なゲームみたいなのを作れれば、と思ってます。 とりあえず新Visual C++6.0入門 ソフトバンク 著者 林 晴比古(はるひこ) を買って実際やってみました。 本に書いてある通りにしてみると確かにできました。 この本であまり文法が理解できなかったので途中で C言語の文法説明をサイトで見つけたので、 今度はそれを見ながらやろうとしたのですが、 問題が一つ! そういうソースを見つけて打つときはどこに打ったらいいのでしょうか? そのソースは年を聞いたりするプログラムなんですけども・・ 詳しい場所を教えてくだされば幸いです。

  • ソースの見方

    大学の卒業研究でVisualC++で非同期型でPtoPのメッセージのやり取りを行えるようなプログラムを作成する予定なんですが、VisualC++でのプログラム開発を行ったことがなく、知識が少ないため、まずは現存するプログラムのソースを見て、構造を理解しようと考えています。 あるサイトからプログラムをダウンロードし、ソースコードを見ようと思ったんですが、どのようにすればソースが見れるのかがわかりません。 ダウンロードしたプログラムにはVisual BasicとC#のフォルダがあり、どちらかのソースを見れれば良いなとは思っているんですが、どのようにすれば見ることができるんでしょうか? VisualBasicのフォルダには、VBファイルとRESXファイル、VBPROファイル、USERファイル、SUOファイルがあります。 C#のフォルダには、CSファイルとRESXファイル、SCPROファイル、USERファイル、SUOファイルがあります。 開発環境はMicrosoft Visual Studio 6.0をしようしていますので、VisualStudioで見れる方法を教えていただけるとうれしいです。 プログラム開発はド素人なのでわからないことだらけですが、よろしくお願いします。

  • C++からCへのソース変換について

    時代と逆の流れで申し訳ない質問なんですが、C++ソースから、Cソースへ変換するアプリケーション、ツール等、ご存知ありませんでしょうか? ここでいう変換とは、classをC言語のstructに変換したりする事です。つまり、classのメンバ関数を外に出したり、operator等の書き換えをしたりするものです。一部の変換ができる物や、補助的に使えるもの等でも構いませんので、よろしくお願いいたします。

  • C++プログラムをCで呼び出したい

    こんにちは。質問させていただきます。 現在、Linux/GCC3.2.3系でC言語の開発をしています。 私自身のレベルとしては、C言語での実務は1年未満。C++はゼロ。本業はJavaプログラマを数年やっております。 さっそく本題です。 既にC++で作成されたある一連のプログラム群(20本程度)があり、これらC++の関数をC言語で作成されたプログラムから呼び出して使用したいと思っています。 C++プログラムは既にテスト済みなので、これらのソースは基本的には手を加えず、そのままライブラリ化などして使用したいと考えています。 そこで質問なのですが、C言語から呼び出せるような形式でC++ソースをライブラリ化する方法と、C言語からの呼び出し方を教えていただけないでしょうか?

専門家に質問してみよう