• ベストアンサー

APIとDirectXって何?

DirectXはOpenGLのようなものだと言う事はわかるのですが、DirectXも無償で プログラミングできるんでしょうか? APIとはC言語の標準ライブラリだけではできない作業を補うものである位しか知識が有りません。 現在XPでStudio.NETを使っています。 APIとDirectXについてどのような物なのか知りたいのですが どなたかご指導いただけませんでしょうか。

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

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

こんにちは。 現在VisualStudio.NETをお使いであればDirectXは無償で開発環境を整えることができます。MicrosoftのウェブサイトからDirectX SDKをダウンロードしてインストールするだけです。あとは、プロジェクト作成時にヘッダファイルとライブラリの場所を設定するとVisualStudioからDirectXを使うことができるようになります。 APIとおっしゃっているのはWin32APIのことだと思われます。 Win32APIとはWindows独自の機能を開発者に提供するためのライブラリ群です。C言語の標準ライブラリと違うところはそのプラットホーム(Windows)上でしか使えないところです。例えばunistd.hやwindows.hにある関数はOSに依存します。よく使うSleep()はWindows上でしか使えないのです。UNIX上ではusleep()という関数を使います。 Win32APIは古いAPIなのですがベーシカルな部分を担当するAPIなのでほとんど変わっていません。よってあまり使い良いAPIとは言えません。例えば、ウィンドウを一つ表示するだけで30行もコードを書かなければならないのです。こういうことがあってOpenGLに対するGLUTのようなパッキングライブラリが多数ありますので、それらを使うと簡単にWin32APIを使えるようになります。 それに対してDirectXは優れたマルチメディア機能を開発者に提供するAPIです。各種アクセラレータを得に意識することなく利用することができるいわば緩衝材のようなものです。DirectXを使用してプログラミングをするときの注意点はDirectXのバージョンです。DirectXはアクセラレータの最新の機能に対応するために拡張を繰り返してきました。ゆえにバージョンによって関数の引数の数が違ったり名前が変わっていたりします。これを追いかけるのはやはり大変です。そこで、DirectXについてもパッケージライブラリが有志によっていくつも作られていますのでそれを利用するのも手です。 DirectXを使うとGDIに比べて描画は驚くほど高速化します。ぜひ使えるようになって、快適なプログラミングライフを!

dra2jp
質問者

お礼

DxLib.hをインクルードするプログラムを勉強する事にしました。とてもおもしろいです! ありがとうございました^^

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#30727
noname#30727
回答No.2

>DirectXも無償でプログラミングできるんでしょうか? SDKはダウンロードして使用できます。 http://www.microsoft.com/japan/msdn/directx/downloads.aspx (ソフトウェア開発キットをクリック) >APIとDirectXについてどのような物なのか知りたいのですが Win32APIなどをAPIと呼ぶべきでは無いと思います。 そう呼んでしまうと、何を指しているのかわからないです。 とりあえず、これを見てください。 http://msdn.microsoft.com/library/ja/ 例えばウィンドウを作成するなら、  Win32 および COM 開発   ユーザー インターフェイス    Windows ユーザー インターフェイス     SDK ドキュメント      Windows ユーザー インターフェイス サービス       ウィンドウィング        ウィンドウ         リファレンス          関数           CreateWindowEx ってなるわけです。 DirectXなら、  Win32 および COM 開発   グラフィックおよびマルチメディア    DirectX このあたりを読んで下さい。 どちらも全て読んで理解するのは無理があるので、適当な参考書を利用する方がいいです。

dra2jp
質問者

お礼

DxLib.hをインクルードするプログラムを勉強する事にしました。とてもおもしろいです! ありがとうございました^^

全文を見る
すると、全ての回答が全文表示されます。
  • salvager
  • ベストアンサー率49% (530/1075)
回答No.1

Studio.NETに於いて、どのように組み込むかのかということなのか、ただ単に説明を希望しているのかが分かりませんが、以下に、概要と参考URLを載せておきます。URLへアクセスした方が早いですが・・・。 DirectX:Microsoftがマルチメディア機能強化のために提供している拡張API群の一つ。「群」というだけあって、いくつかのカテゴリに分かれており、用途としては主に3DCGや音声を使用するゲーム開発に多く使用される。また、OSレベルで使用できるDirectXが違う。

参考URL:
http://e-words.jp/w/DirectX.html
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • プログラミング言語のAPI

    プログラミング言語の『API』にあたるものって具体的には何なのでしょうか? 例えば,C言語の場合『API』にあたるのはprintfやscanfなどの『標準関数全体』という解釈で合っているのでしょうか? また,ライブラリとAPIの関係についても教えていただけると嬉しいです. 読んだ本の中で少し触れられていたのですが,表現が曖昧であまりよく分かりませんでした・・・.

  • DirectXやWin32API (2Dゲーム作りたいです)

    こんにちは,私は2D(最終的には3D(メインは2D))のゲームを C++,DirectX を利用して作りたいと思っています.  今のところ,プログラミングはC,C++は入門+α, ゲーム関係は『ゲームプログラマになる前に覚えておきたい技術』という本の2D分野を読み実習しました.このゲームの本はDirectXやWin32APIなどを利用せずに,なにやらライブラリなどを用意していてそれを利用する形でした. -- 質問 --  DirectX や Win32API を全然わからないという このくらいの知識の人が本格的に2Dゲームをだんだんと作って行きたいのですが,このそれぞれに対してなにかよい参考書はないでしょうか,またその理由などもいただきたいです. --気になること-- 以下あいまいな知識の質問です. ・最近(DirectX7以降かな)はDirectXは2D描写と3D描写の機能が合体したと聞きました,DirectXの参考書は3Dのばかりで3Dも学べていいのですが,2Dゲームが作れるDirectXの内容も詳しく含んだ参考書が欲しいです. ・Win32APIはゲーム製作にどう影響してくるんですか?まだよくわかっていません.ゲームウィンドウなどを表示するのは必用そうですが,, サウンドやグラフィックを読み込むのに必須なのだろうか, でもそれはDirectXでもできませんか?関係がよくわかりません. --まとめ-- できれば 気になること の回答など簡単にしていただきたいです.  長文ここまで読んでいただきありがとうございました. よろしくお願いします.

  • C,C++,Win32APIだけでSFCレベルのゲーム

    この言語だけでSFCレベルのゲームは作れるのでしょうか? (具体的に言うとスーパーマリオワールドの1ステージくらい) それとも、やはりDirectXやOpenGLなどを使わないと無理なのでしょうか? 教えていただけると有難いです。 またDirectXを使う場合、Win32APIの知識はどれくらいあれば足りますか?よく参考書とかに載っているテトリスを作れるくらいで足りるでしょうか?

  • DirectXとOpenGLはどちらが動作が軽い?

    環境:Visual Studio 2005 WinXP Win32 C/C++ Windowsプログラミングを一通り勉強したので、 次は3Dプログラミングに挑戦したいと思っています。 DirectXとOpenGL、どちらを学習しようか決めかねています。 最終的にはとても軽く動作する3Dゲームを作りたいです。 そこで、たとえばまったく同じ動作をする DirectXの3Dゲームと、OpenGLの3Dゲームがある場合、 どちらのほうが動作が軽いのでしょうか。 ここでいう「動作が軽い」というのは、 そのゲームが使用するメモリ量、CPU量などが低く動作が快適なものです。 メールソフトやブラウザを同時に起動しても気にならない ほど軽いものが作りたいと思っています。

  • C言語でWin32API

    C言語を使ってWin32APIを呼び出すような、Windowsプログラミングを始めたいんですが、何かよい本やサイトはご存知ないでしょうか。 Visual C++6.0はあるんで、それを使えばいいと思うんです。 C言語はわかるんですが、Windowsプログラミングに関する知識はほとんどないので、ごく基本的なことから知りたいんです。 WinMain関数というのを書くようなんですが、その書き方すら知りません。  スケルトン(出来れば、それよりもっと基本的なこと)から書いてあるようなものです。

  • DirectX用のライブラリを探しています

    DirectX用のライブラリを探しています プログラム関係の学校に行っているのですが、学校の作品制作でオリジナルのPCゲームを作ることになりました。ジャンルは弾幕のシューティングで、言語は調べたところゲーム制作はDirectXとC/C++が良いとのことでしたので「DirectXとC/C++」を使う予定です。 ですがDirectXを使うには少々問題がありまして、DirectXというものを一切触ったことがありませんので現在の知識では当然画像の描画すらできないんです。 さすがにそれではマズイのでDirectX用のライブラリを使おうかと思っています。そこで、DirectX用のライブラリでお勧めのものがあれば教えていただけたらなと思いまして、書き込みをさせていただきました。(実際に色々と試したいところなんですがそれほど時間も無いもので……) もし「こんなものがいいよ」というものをご存知であれば是非とも参考にさせていただきたいのでアドバイスをいただけると幸いです。よろしくお願い致します。 補足になりますが・・・ 作品制作ではライブラリに規制があり、ツクール系やHSPみたいな簡単に作れるものはNGという制限があります。 描画には2Dと3Dの両方を使います。 DirectXのバージョンはできればDirectX9…DirectX8くらいであると有難いです。 なにぶん勉強中のもので不足がございましたらその都度ご返信させていただきます。よろしくお願いします。

  • directxとプログラミング言語

    今、Visual Studio 2008 Expressでdirectxを勉強しているのですが、ふと思いました。 (1)最近のwindowsPCでのオンラインゲームやxboxやps3はdirectxを使ってプログラムしているのでしょうか? (2)xboxはC#でプログラムしていると分かったのですが、PS3と最近のwindowsPCでのオンラインゲームはどんなプログラミング言語でプログラムをしているのでしょうか? よろしくお願いします。

  • C++ API 全般 APIの概要は

    独学にてプログラミングを勉強しているのですが、いきづまってしまったので質問お願いします。 ※Visual Studio 2008 Express Editionsを使用しています。 まだプログラミングに関しての勉強を始めて1ヶ月程度で、最初はVB.NETから始めて、最近C++に乗り換えました。 趣味の範囲でのゲームを作ろうと思っていて、C++とDirectXでの開発を予定しています。(しかし、最終的にはゲームに限らずプログラミングの技術と知識を習得することを目標にしています。)(DirectXに関してはまだ手をつけていません。) まったく1からのスタートで、現在win32コンソールアプリケーションにてコードの勉強をしているところです。 勉強に使っている参考文献は ・VisualC++.NET逆引き大全500の極意 ・ゲームプログラマになる前に覚えて起きたい技術(これを買うには早すぎたようです…。第一章も半分くらいしか理解できません…。) サイトは ・主に「0からのゲームプログラミング」というサイトです。 http://www.plustarnet.com/aspil/Programming/ 本題の質問ですが、APIというものがいまいち理解できません。 (1)上記のような目的で使用するAPIは、標準 Windows APIというものでいいのでしょうか? (2)win32コンソールアプリケーションでは実行できるのに、win32プロジェクトでは実行できないのはなぜでしょうか? #include<windows.h> int WINAPI WinMain( HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow ) { MessageBox(NULL , TEXT("Hello Wold!") , TEXT("メッセージボックス") , MB_OK); return 0; } (3)http://www.plustarnet.com/aspil/Programming/CConsole.htm このURLのコンソールAPIというのは、一般的に使われているものでしょうか?それともこのサイトのオリジナルのものでしょうか?win32コンソールアプリケーションでAPIを使うには、このURLのCConsoleクラスとうものをインクルードしないといけないのでしょうか?#include<windows.h>と宣言することによって気軽に使いたいものを使うことはできないのでしょうか? (4)#include<windows.h> とした場合、作るものが「win32コンソールアプリケーション」だったり「win32プロジェクト」だったり「windowsフォームアプリケーション」だったりで、使用方法などがまったく別になってしまうのでしょうか? (5)そもそも、上記の目的の場合APIを勉強する必要はあるでしょうか? (6)勉強をしたほうが後々に役立つ場合、どのAPIを勉強するのがいいのでしょうか?(APIといっても様々なものがあるんだなと思い質問しました。もし勘違いでAPIというものは一つしかないとしたらすみません。) なぜAPIに関してかというと、単純に上記のサイトで言語編の一番上から順に見ていったからです。 初心者すぎて質問が的外れかもしれませんがよろしくお願いします。

  • VC++でwin32APIを作っているのですが・・・

    こんにちは。私はwin32APIを勉強しているc言語初心者です。 私はMicrosoft Visual C++ 2008を使ってc言語のwin32APIをプログラミングしているのですが、独学でやっているので物凄く邪道なwin32APIプログラミングをしているような気がするのです。 ・c言語のプログラムを書いて、C++のwin32APIプロジェクトとしてビルドする。 ・ヘッダーファイルにwin32API関数がなかったので、自分のwindowOSからwin32API関数を探し出してVC++2008のなかのincludeフォルダ内にコピー&ペーストして使えるようにした。 これって邪道ですか?一応何の問題もなくwin32APIプログラムが作れるのですが、もっと正規なやり方があるでしょうか。回答よろしくお願いします。

  • DirectX

    ラトルズ株式会社から出版されている15歳からはじめるDirectX9ゲームプログラミングC++編の第5章の関数ライブラリを作成するところでサンプルのソースプログラムを全て打ち込んだにも拘わらずウィンドウが表示されなくて困っています。どなたか同じ本を持ってる方、もしくはDirectXに詳しい方が居ましたら教えてほしいのですがよろしいでしょうか。 開発環境はVisual C++ 2008 Express Edition、DirectX SDK(June 2007)でOSはVistaです。