ページ 11

DirextXライブラリとC言語の連携??

Posted: 2012年11月10日(土) 02:51
by ぽわぽわら
Visual Studio 2010 Expressを使用、C言語にて囲碁のようなゲームを作っています。
今のところは○(丸)や△(△)などの記号を並べて描写しているのですが、そろそろGUIが欲しいと思っていた矢先にDXライブラリのことを知りました。

私が作りたいのは…DXライブラリで座標を入力 → 数値データに変換してC言語に送信 → C言語で処理し、数値をDXライブラリに送信 → 描写

という流れのソフトウェアです。既にCUIで動いている部分は弄りたくないので、C言語部分の改変は最小限にしたいのですが、
現在のC言語プログラムを95パーセント以上はコピペしただけの状態で動くのでしょうか?(その場合、C言語のmain関数と、DXのmainに相当する関数では、どちらがmainの役割を果たすのでしょうか)

それとも、DXライブラリはC言語に似ているだけという話で、移植の際には別のアプリケーションとして1から組みなおす必要があるのでしょうか??

Re: DirextXライブラリとC言語の連携??

Posted: 2012年11月10日(土) 04:24
by h2so5
まず、DXライブラリとC言語の関係の解釈が間違っていると思われます。
DXライブラリは名前のとおりライブラリですから、

 C言語→CUI
 DXライブラリ→GUI

のように独立しているわけではなく、

 C言語→CUI
 C言語 + DXライブラリ→GUI

のようにC言語からDXライブラリを使うことで画像を表示したりできる、ということです。
連携も何も、DXライブラリ自体がC言語から使うために作られているわけです。
ぽわぽわら さんが書きました:既にCUIで動いている部分は弄りたくないので、C言語部分の改変は最小限にしたいのですが、
現在のC言語プログラムを95パーセント以上はコピペしただけの状態で動くのでしょうか?
どのようなソースコードを書いているかによります。
描画処理や入力処理などが抽象化されていてゲーム本体の処理と十分に分離されていれば、移植するのは比較的簡単でしょう。
ぽわぽわら さんが書きました: (その場合、C言語のmain関数と、DXのmainに相当する関数では、どちらがmainの役割を果たすのでしょうか)
DXライブラリの(正確にはWin32アプリケーションの)main関数を使うことになります。

Re: DirextXライブラリとC言語の連携??

Posted: 2012年11月11日(日) 03:01
by ぽわぽわら
返信ありがとうございます。

DXプログラミングではmain関数がwinmainになっていたのでわかりにくく感じたのですが、この部分+αだけ書き換えたら移植することができました。
キーボードで入力すべき値は仮の数値で固定していますが、プログラムが最後まで動いた段階で出力される「isyoku:OK」の文字(ここだけ臨時で追加しました)が出力されました。 (インプットやアウトプットなどについてはこれから学びます)

どうもありがとうございました。