• ベストアンサー
  • 暇なときにでも

C言語でWin32API

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

noname#2293

共感・応援の気持ちを伝えよう!

  • 回答数4
  • 閲覧数246
  • ありがとう数5

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

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

Visual C++(1)「はじめてのWindowsプログラミング」 (全3巻) をお勧めします。 ISBN4-88135-821-9 (1)ではAppWizardやMFCを一切使わない方法(WinMainから記述)で プログラミングの説明をしてあるので はじめての方でもVC++の構造がよくわかります。 ちなみに (2)はオブジェクト指向 (3)はMFCを扱っています。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答の Visual C++(1)「はじめてのWindowsプログラミング」(山本信雄 著、翔泳社) 買いました。 私にとってはこれが一番あってそうなので、これに沿って勉強しようと思います。

関連するQ&A

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

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

  • VC++ .NETでWin32 APIの関数を呼び出すことは可能なのでしょうか?

    Visual C++ 2003 .NETで、Win32 APIの関数をSystem.Runtime.InteropServices名前空間を利用して呼び出したく、チャレンジしておりますが、C#のやり方でやると記述エラーになります。 Google等で調べても、C#のものばかり出てくるのですが、VC++ .NETではWin32 API関数を呼び出すことはできないのでしょうか?

  • XPの頃のWin32APIの本などはまだ役に立つ?

    1999年頃学生でC言語を勉強し平行してC言語だとWindowプログラムが 作るのが大変だったことからVBも少しやりました。 頭が悪かったもので、その後、VC++6.0を使いWindowsプログラミングを 作る以前の段階で挫折し勉強の難しさに悶絶し病んで廃人となりニートをやっていました。 その後、なんとなくプログラミングに未練があり、Windows APIの本を買ったり JAVAの本を読んだりHTMLやVBS、CSSなどを勉強してみたりしましたが 途中でいつも投げ出して中途半端でした。 そして再び、最近、プログラミングの本を読む機会があり、 知り合いの友人に感化されたこともあり、 Rubyを勉強し始めたのですが、 Win32 API? RubyでWindowsプログラミングを作ることに特化した本が200円で売っていたので 2007年の本でしたが購入してみました。 Win32OLEについて解説してありました。 Rubyに関する知識がまだあやふやな部分があり、またCOMやAPIに関する知識も ???なのであまり理解できませんでしたが、 なんとなく雰囲気のさわりのさわりぐらい分かりました。 とりあえず、昔は頭が悪く非常に精神的にも混乱していて よくわからずなんでも取り組もうとしてしまいました。 WEBページなどの処理をするにはHTMLのほかにDOM、CSSなどの知識 Java scriptなどの知識であっているでしょうか? ruby php phython perl などいろいろあるがこれは特性をみて自分がやりたい言葉のようなものなので 母国語を一つマスターすべきということは理解しました。 また、Windowsプログラミングを作るのであれば、 APIやCOMなどの知識があればいいのでしょうか? FLASHやActiveXのように現在お目にかからない仕様もあるのですが、 これらも内包していまでも学ぶ価値はあるのでしょうか? 出来ればでいいのですが、 安く仕入れられるプログラミング書籍でも活用が可能な技術を 教えてください。 教えてくださいと言ってもC言語を覚えればOSだって作れるよとか アセンブラ覚えれば完璧ですとかそういうのは無しで 一般的なバカなおじさんがなんとなプログラミングを作るうえで知っていた方がいい 知識や導入方法、パーツなどを教えてくださいよろしくお願いします。 一応、今、RubyとVBS、CSS,HTMLを勉強しています。 DOMの知識はあまりないです?説明してみろといわれてもあやふやな答えしかできません よろしくお願いします。

その他の回答 (3)

  • 回答No.4
  • gimmick
  • ベストアンサー率49% (134/270)

やはり「猫でもわかるプログラミング」が有名ですね。それから、参考URLの「Win32 API入門」もかなり詳しく解説されています。一度目を通されてはどうでしょか。

参考URL:
http://black.sakura.ne.jp/~third/win.html

共感・感謝の気持ちを伝えよう!

質問者からのお礼

参考URL見てみました。 かなり詳しく書いてありますね。

  • 回答No.2
  • nubou
  • ベストアンサー率22% (116/506)

Win32APIを呼び出すような、Windowsプログラミングを始めたいんですが: MFCを使わない理由は何ですか?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。 すみませんが、MFCというのもよくしらないので、うまく説明できません。

  • 回答No.1
noname#4320

こんにちは。 下記URLの、C/C++プログラマのためのWindows95プログラミングが良いのでは。 http://www.seshop.com/detail.asp?pid=1195 WinXP時代ですが、この本はWindowsプログラミングの「初めの一歩」として 購入の価値はあると思います。(ぶあつくない適量だし) Webサイトでは、猫でもわかるプログラミング http://www.kumei.ne.jp/c_lang/ が有名だと思いますが、気合をいれて勉強したいのではれば、やはり前述の 書籍をお勧めします。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

結構気合が入っているし、参考になりそうなので、 『C/C++プログラマのためのWindows95プログラミング』 買いました。

関連するQ&A

  • Win32APIのゲームやアニメーションについての書籍

     Win32APIでゲーム(もぐらたたき)を作りたいのですが、Win32APIでゲームを扱っている書籍が少ないような気がします。(テトリスは多いですが)  もう一つ、DirectXでは画像やアニメーションの本はたくさんありますが、Win32APIではアニメーションの作り方について、多数しかも手取り足取り載っているのが見当たらないです。特にビットマップエディタの使い方がよく分からなくて困っています。Visual Studio 2005のVisual C++を使っています。  ちなみに今まで「Windowsゲームプログラミング 赤坂玲音著」で勉強して、ちょこちょこサイトでアニメーションを勉強しましたが、自分でアニメーションを作ろうと思うとあまりに情報不足な状態です。  Win32APIのゲームやアニメーションについての書籍やサイトがあれば教えていただけたら嬉しいです。

  • Win32APIでのメモリ管理について

    C→malloc関数 C++→new演算子 Win32API→GlobalAlloc関数 とWin32APIでのメモリ管理の方法にはいろいろありますが、どれを使うのが一番実用的なのか、どれが一番効率的なのかが知りたいです。 あとWin32APIにはHeapAllocという関数もあるようですが、上記の3つは使わずにこの関数を使用したほうがよいのでしょうか。

  • Visual Studio関連でAPIを使った学習方法は効率的でしょうか。

    C++の勉強をしようと思い、Visual C++ 2005 Express Edition を使って勉強しています。 本屋さんに行くと古めの本には、windowsプログラムはAPI関数も使って勉強した方がバグなどの対応にも融通が効くと書かれていますが、2008年の現時点でvisual studio関連の製品も発展していると思いますが、API関数を使ったプログラムの勉強方法は効率的でしょうか。 API関数を使ったプログラミングの本(Visual C++(1) 山本信雄著)を購入しをプログラミングを始めたばかりですが、windowsの仕組みも少しは理解出来たと思います。 またMFCなどを使ったプログラミングを行った方が良いのでしょうか。 宜しくお願いします。

  • C++とWIN32APIとゲームプログラミング

    WINDOWSで動くゲームを作りたくて3日ほど前からC++の勉強を始めました。 (最終的にはグラディウスのような横スクロールシューティングが作りたいです。) そこで質問なんですが 1、Win32APIについて調べるとC言語を使っての入門サイトばかりがヒットします。 Win32APIはC言語で書くものなんでしょうか? そうなってくると今WindowsのGUIアプリを作るのにC++を勉強していますが無駄ってことでしょうか? 例: 猫でもわかるプログラミング http://www.kumei.ne.jp/c_lang/index.html Win32API入門 http://wisdom.sakura.ne.jp/system/winapi/win32/index.html ちなみに今学習に利用しているサイトは以下のサイトです。 C++入門 http://www.asahi-net.or.jp/~yf8k-kbys/newcpp0.html 2、ポインタの概念について ポインタのイメージですが値を格納している場所みたいな感じで大方あってますでしょうか? 僕は組み込み系をやっているのでアセンブラにどっぷり漬かっています。 なんていうかレジスタの番地がポインタに該当するのかなって思っています。 ↓みたいなイメージで考えています。 ポインタ=データの場所=レジスタ番地 これであってますか? 3、まだGUIには進んでませんがウインドウのメニュー(ファイル、編集等)を作るのにリソースファイルも作るって説明が上記ページ(猫でもわかる)に書いてましたがリソーススクリプトとかヘッダーもプログラム言語とは別に勉強する必要があるんでしょうか? 4、C++のクラス概念について クラスとは複数の関数をひとまとめにしてグループ管理(おおざっぱに言うとサブルーチンの集まり的な)するようなものってイメージであってますか? 5、WindowのGUIアプリのプログラムの概要ですが各オブジェクト(ウインドウやボタン、マウスポインタ等)に対して「クリックされた」とかのアクションに対して動作するプログラムを書くって事でいいんでしょうか? 6、お勧めの参考書籍について 今までアセンブラをはじめPerlやJavaScript、C言語のお勧め入門書をいろんなサイトのレビューを見て買いましたが本よりネットの入門サイトのほうがかなり役にたってきました。それでも入門書を買うのは気持ち的に安心するからなんですが・・・ それを踏まえた上で僕の最終的な目的にあうような本があったら是非教えてください。 7、勉強の進め方や「合わせてこれも勉強しろ」っていう項目があれば教えてください。 現状としては 「C++の基礎(必要ですか?)」→「Win32API」→「DirectX」で行こうと思っています。

  • VC++コマンドプロンプトでwin32コンパイル

     c言語でwin32AIを開発しようと思ったのですが、c言語のwin32API プログラムをVisual C++2008のコマンドプロンプト経由でビルドするこ とは出来るのでしょうか?回答よろしくお願いします。

  • Win32APIは覚えて損する?

    Win32APIは現在一般的に出回ってる32Bit版Windowsの ApplicationProgramingInterfaceですよね? これがそのうち一般的に出回るのが64Bit版Windowsに なったときもWin32APIを勉強したときの知識は役に たつのでしょうか? またWin16→Win32に変わったときはどのような感じだ ったんでしょうか? あと少々質問とずれてしまいますが○○Bit版Windowsの [○○Bit版]はどのような意味を持つのでしょうか? 暇なときにでも回答できたらお願いします ※ ○○=16 or 32 or 64 など

  • 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に関してかというと、単純に上記のサイトで言語編の一番上から順に見ていったからです。 初心者すぎて質問が的外れかもしれませんがよろしくお願いします。

  • Win32APIを始めたのですが・・・。

    Window Handleについての質問です。Win32APIではCreateWindow()でチェックボックスを作ることが出来るのですが、 C++でプログラミングしていたところ、困ったことになりました。 まず、クラスのメンバーとしてHWND m_Hwndを宣言し、メンバー関数(CreateChk())において m_Hwnd = CreateWindow(...)とし、WM_CREATEのメッセージ処理内で関数CreateChk()を呼び出して チェックボックスを作るようにしたのですが、WM_CREATEのメッセージ処理を終えると同時にm_Hwndの内容が意味を持たないものに 変わってしまい、チェックボックスの状態を利用することが出来ません。 変数の寿命に関係したものだとは思うのですが、クラスを用いたオブジェクト指向プログラミングも始めたばかりでよくわかりません。 どなたか対処方法をご存知でないでしょうか?

  • [C言語、Win32API] 音楽を途中から再生する

    Visual C++ 6.0 でWindowsアプリケーションプログラミングをしています。 音楽(mp3形式)を再生するのは高レベルMCIまたは中レベルMCIで出来るのですが、曲を途中から再生する、ということは可能なのでしょうか? もし、やり方があれば、教えていただけると有難いです。 よろしくお願いします。

  • windowsでの自動化

    windowsで、画面上の色を取得して、自動的にクリックするプログラムを作りたいのですが、 必要なものがわかりません。 調べてみると、win32apiとvisual C++を使う方法があるようですが、他の方法はあるのでしょうか。 ちなみにプログラミングの経験は、C言語でCUIのプログラミングをしたことがある程度です。 簡単なデータ構造やアルゴリズムもわかります。 ですが言語は問いません。 よろしくお願いします。