• ベストアンサー

他言語との連係

c言語と他言語(具体的にはc#など)を連係させるということは可能なのでしょうか? 例えばネットワーク対戦のゲームを作成するとして、ゲームの本体の部分を c言語で書き、ネットワーク関連の部分をc#で記述するといった感じです。 的外れな質問かもしれませんがどなたかご教授お願いします。

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

  • ベストアンサー
回答No.3

C#に移行すべきかはそれぞれの環境によるかと思います。 ・今後もWindows限定(Linux、Mac用アプリは開発しない) ・小メモリ、高速アプリなどは求めない という状況であれば、おそらくC#に移行した方が後の開発は圧倒的に早くなると思います。 とはいえ、私自身軽量・高速なアプリを作るときに今でもC/C++はバリバリ使っていますし、適材適所ですね。 とはいえ、C#はC言語ベースで難しくないですし、結局ネットワーク部を開発されるということですから、その時にすぐ覚えてしまうと思いますよ。

kerokk
質問者

お礼

ありがとうございます。大変参考になりました。 c#の学習を進めていきたいと思います。

その他の回答 (2)

回答No.2

ゲームということでおそらくはWindows環境ですよね? その場合、Microsoft的には.NET Frameworkに依存させれば、C#, VB, C++など多くの言語で連携が可能です。.NET Framworkの共通言語基盤の部分です。 通信部(ネットワーク部)をC#で書いてコンポーネント化し、C++から呼び出すことなどはできます。 一方で、C言語をどの程度のものを想定しているかわかりませんが、非常に高速な動作を要求するなどの理由がない限り全てC#の方が良いのではと思います(高速なCPU,多量のメモリが一般的である現時点で)。言語の習得が問題でしたらC#を覚えてからゲームを作った方が結果的には速いかもしれないですね。

参考URL:
http://ja.wikipedia.org/wiki/共通言語基盤
kerokk
質問者

お礼

お返事ありがとうございます。 今までc言語でプログラミングをしてきたのですが、最近c#の勉強を始めたので これらを組み合わせられないかと思い、質問をさせていただきました。 cortotbachさんの話では全てc#にすべきとのことですが、 やはり全面的にcからc#へ乗り換えたほうがいいのでしょうか?

  • Yanch
  • ベストアンサー率50% (114/225)
回答No.1

他言語から呼び出せるように、ライブラリ化すれば、よいと思います。 Windowsなら、COMとか調べてみると良いでしょう。 Linuxなら、共有ライブラリなど。 MSDNのCOMを解説してるサイト http://msdn.microsoft.com/en-us/library/aa139695.aspx

kerokk
質問者

お礼

お返事ありがとうございます。 COMですか。参考になります。 いろいろ難しそうですががんばってみます。

関連するQ&A

  • 他言語のプログラムを繋げて実行することは?

    C言語とVBなど他言語のプログラムを繋げるかして実行できますか?

  • c言語でできること

    c言語は具体的には何ができるのでしょうか ものすごくがんばれば市販のゲームソフトなども作れるようになるのでしょうか というのは 今、僕はc言語のプログラミングを勉強しています コンパイルするとms-dosの黒い画面が表示されますよね。オセロなどのゲームはとても見にくいです。 あのようなゲームではなく、ちゃんと絵があるようなゲームは作れるのでしょうか?? また3Dのゲームはつくれるのでしょうか? 「c言語のゲーム」とググってもありません c言語だけではできなくてdirectxなどがいることは知っています。 プログラミングを学ぶ上でなにか目標ができたら それに向けてがんばれると思うので情報よろしくお願いします。 わかりにくい文章ですいません^^;

  • シューティングゲーム向けの開発言語

    某弾幕ゲームの影響でプログラミングをし始めたんですが C言語やC++語以外ゎあまり手をつけたことがなく どの言語が弾幕ゲー開発に最適なのか把握しきれていません。 個人的にはXMLやJAVAのほうがシューティングに向いているように 感じるのですがその辺もどうなんでしょう? お勧め言語等、ご教授お願いします。

  • ゲームプログラミングのネットワーク対戦

    毎回、お世話になっています。 開発環境:Visual Studio 2005 Visual C++ 開発言語:C/C++ + Win32API + DirectX9 現在、上記の環境・言語でゲームプログラムを作成中です。 そのゲームに、ネットワーク対戦を導入したいと思っています。 そこで質問なのですが、どのように実装すればよいでしょうか? 質問が非常に抽象的で申し訳ないのですが、まずは、DirectPlayやWinSockなどのライブラリの中で、何を使えばいいのか、をアドバイスしていただければと思います。 また、出来ましたら簡単に仕組みを解説していただければ幸いです。 その後、具体的な導入方法について自身で調べてみることにします。 通信の特徴として、 ・1vs1の通信対戦 ・一回のデータ量は少ないが、ほぼリアルタイムに送信 という感じです。 ネットワークプログラミングにはあまり触れたことがないこともあり未熟な身ですが、ご存知の方がいましたらご教授よろしくお願いします。

  • PS系ゲームを多数の言語で遊びたいのですが

    PlayStation, PlayStation2及びPlaystation3用のゲームソフトを、英語、韓国語、フランス語など、日本語以外の言語で遊びたいのですが、そのためにはそれぞれの言語のために専用のPS本体をそろえなければならないのでしょうか? 気に入ったゲームがあって、それを英語でやってみたいとか、ドイツ語でやってみたいとか思った時に、ソフトを買い直さなければならないにとどまらず、本体まで買い足さなければならないなんて余りにも理不尽ではありませんか?本当に方法はないのでしょうか?

  • C言語の活用法

    C言語を使えればいろんなことができるとは聞きました しかし私が知ってるのはCGIとゲーム作りにしか使う方法を知らないのです ですので具体的にどんなものにC言語を使えるのか教えていただけますか?

  • まずどの言語を学ぶのが良いですか?

    これからプログラムについて、ちょっとかじってみたいなと思っているのですが、あまりに巷に多くの種類の言語が氾濫していて、どの言語を選択した方が良いのか皆目見当がつきません。どうやら言語で「C」という物を多く見かけるのですが、それをやるのが賢明なのでしょうか? 皆さんは選択するのに意味があって選択しているのでしょうが、初心者の人は一体どういう過程で初めての言語を選択するのでしょうか? ちなみに、強いていうならば将来的にはゲームを作りたいなとか思っているのですが、そういうのも選択の指針になるんでしょうか?ただ、ゲームも作りたいですが、融通の利くスタンダードな言語も学びたいです。 ちなみに、プログラムに向いている人って傾向があるのでしょうか?私は個人的に外国語を勉強するのが趣味なのですが、プログラムと外国語は似て非なるものなのでしょうか? よろしくお願いします。

  • WordPress タイトル名の言語ごと切り替え

    サイトのタイトル名を言語のボタンをクリックしたさいにそれぞれの言語へ切り替えたいと考えております。 中国語タブをボタンした場合は「●●●●」(中国語バージョン)、 英語タブをボタンした場合は「△△△△」(英語バージョン)、 といったように各言語ごとに htmlソースでいう <title>サイト名</title> の部分を各言語ごとに変更したいと考えています。 画像ではなく文字のみの修正です。 管理画面→一般設定→ブログタイトル「サイト名」 こちらの部分を参照しているのかと思います。 header.phpへ記述するというところまで想像は出来たのですが 記述方法についてphpの知識がないため困っております。 どなたかご教授いただけると幸いです。

    • 締切済み
    • PHP
  • 麻雀ゲームプログラムを組みたい

    麻雀ゲームのプログラムを組もうと思っているのですが、点数判定のアルゴリズムについて解説しているサイトなどはないでしょうか?私もいくつか探してみたのですが、なかなかこれだというものがありません。言語はjavaとC#を使っていますが、C++など他言語での解説でも問題なく、考え方や効率的な順番などが解説されているものを望んでいます。どなたか知っている方がいましたら、教えて下さい。

  • プログラム言語の特徴(得意・不得意)について

    各コンピュータ言語の特徴(得意・不得意)を教えてください。 ネットワークプログラミングに関して知りたいので、それに 関連する言語に関して教えていただければ幸いです。 この質問の背景を以下で説明したいと思います。私はネット ワークプログラミングに関しては素人なので、質問自体が 的外れの点もあるかもしれませんが、どうかご了承いただき、 私の言わんとすることを汲み取ってご回答いただければ 幸いでございます。(知識に欠けている中で、的確な質問 をすること自体が難しいので、どうかご理解ください。) 私は以前に機械系のエンジニアをしておりました。そのため、 プログラミングは専門ではありませんが、ハードウェアの 制御のプログラム(例えばモーター制御や、DI/DO、AI/AO、 CCDからの画像取得など)を書いた経験はあります。 そのときに、もともとCでプログラムを作成しておりま したが、マルチスレッドプログラミングでかなり苦戦 しました。専門書を買ってきてその通りにプログラミング してもうまく動作しませんでした。散々悩んだ挙句、 ハードウェアに特化したプログラミング言語である LabVIEWでプログラミングをしてみると、マルチ スレッドもタイミングも何も考えずにプログラミン グができました。今まで何ヶ月も悩んでいた問題が 一瞬にして解決しました。 このとき感じたのは、プログラミング言語には 得意・不得意があって、開発したいアプリケーション によって、プログラミング言語を選択するのが 効率的なのかなあということでした。 よく、どんな言語でも、極めればどんなことでも できるという人がいます。確かにCなんかは、 どんなこともできるのではないかと私も思います。 ただ、上述の私の例のように、プログラミング 言語毎に、得意・不得意があったり、すでに ある機能に対してそれを実現するパッケージが 存在する言語があったりして、実質的に作業 効率を考えると、実現したい機能(アイデア) に応じて、それに適したプログラミング言語が 決まるような気がしています。 そこで、今私はネットワークプログラミングの 勉強をほぼゼロから始めようと思っています。 ネットワークプログラミングで使用される言語 はいろいろありますが、それぞれの特徴 (得意・不得意)あるいは、それに適した アプリケーションの種類などを、大まかに まとめることはできませんでしょうか。 例えば、前述の私の例で言いますと、 C: 自由度があって、様々な設定ができるが、 めんどう。 LabVIEW: マルチスレッドやタイミング などを考えずに簡単にプログラミングできる が、タイムクリティカルな処理はCで記述 してインポートする必要がある。 こんな感じにネットワークアプリケーションに 関して分類できると、初心者にとっては とっつきやすく、こういうソフト開発を したいからこの言語を勉強してみようと なります。 また、上述の例のように、ネットワークプログ ラミングにおいても、得意な部分のパッケージ をインポートしてつなぎ合わせるような プログラミングはあるのでしょうか。 果たして私の意図がうまく伝わったか分かり ませんが、ご回答いただけましたら幸いです。

専門家に質問してみよう