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に関してかというと、単純に上記のサイトで言語編の一番上から順に見ていったからです。
初心者すぎて質問が的外れかもしれませんがよろしくお願いします。
お礼
ハイパーリンクっぽいコントロールがクリックされたらコマンドで通知、みたいな事がしてほしいのです。 でも便利な関数ですね! 回答ありがとうございました。
補足
結局スタティックコントロールでそれらしい物を作ることにしました。 DrawTextのDT_CALCRECTで文字列の幅を得てその幅を元にスタティックコントロールをつくり(SS_NOTIFYでクリック感知)、WM_CTLCOLORSTATICメッセージでreturn (BOOL)GetStockObject( NULL_BRUSH )してスタティックコントロールの背景色を白にして、あとはクリックされたら適当に点線の四角を描画してなんとかしてみます。回答ありがとうございました!