windowsのプログラムを作るには

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
parapara

windowsのプログラムを作るには

#1

投稿記事 by parapara » 10年前

以前2,3年前お世話になっていたものです。dixQ様とGPGA様、他にも昇進状態上位の人にお世話になっていました。ありがとうございます。あの頃はCの様々なアルゴリズムを教えていただいていました。
windowsのプログラムを作るためには、2年以上前の事なので結構忘れてるが、色々努力してきたのですが、駄目でした。まずはじめに、
プログラミング学習シリーズ Visual C++ 1 はじめてのWindowsプログラミング
をやりました。長いコードを丸暗記しました。←丸暗記というやり方は間違っていたでしょうか?
徐々に覚えていくというやり方のほうが良かった気がします。どうでしょう?
DLLの箇所は理解できませんでしたが、大きな収穫はありました。この本の売りはCしか知らなくてもAPIを学べて簡単なwindowsのプログラムを作れるというものでしたが、www13.plala.or.jp/kymats/book/book.htmlにも書いてあるように、完全読破しても自分で作れるようにならないのです。次に
Windowsゲームプログラミング 著者 赤坂玲音
をやった気がします。マルチスレッドやセマフォなどプログラミングの技術は全部習得できましたが、
最後の方の数種類のゲームはコードだけで解説が無いので、挫折しました。ここでwindowsプログラミングから手を引きました。
今思っていることは、Cだけじゃwindowsプログラミング無理なんじゃないか?
①C++を勉強するべきなんじゃないか?そのあとVisualC++を勉強するべきじゃないか?
それとも、②?才からはじめるで、DXライブラリで簡単な流れをつかむか?
複雑なwindowsプログラム作っている人は、MFC使っている人が多いんじゃないですか?どうなんでしょ?
CとAPIだけでプログラム作るのはめんどくさくないでしょうか?
あくまで素人判断ですので、気を悪くされないように。
以上の質問全てに答えて頂きたいです。お手を煩わせてすみません。
又windowsプログラミングを私はある本を読んでこうして(丸暗記or徐々)習得したとか?体験談募集^^/
又windowsプログラミングを習得するのに良い本ありましたら教えてください。凄く知りたいです。
お願いします。猫でもはCしか知らないので受け付けなかったです。

tk-xleader

Re:windowsのプログラムを作るには

#2

投稿記事 by tk-xleader » 10年前

あくまで僕の意見ですが…
1.Windows APIプログラミングは考え方だけ習得して後はリファレンスでどうにかしてます。
 あれを丸暗記するなんて無理です。
2.C++は勉強して損は無いですよ。とりあえず「独習C++」でC++に関しては大抵どうにかなります。
 別にクラスを使わなくてもstd::string(標準文字列ライブラリ)とかだけでもだいぶ楽です。
 何よりライブラリの選択肢が格段に増えます。
3.またはC#を勉強して.NETにするというのもいいかも…(これが最も手っ取り早いかも)

僕自身は最近はMFCではなくATL/WTLにずいぶん依存してますけど…

softya

Re:windowsのプログラムを作るには

#3

投稿記事 by softya » 10年前

C++とMFCの組み合わせは手軽に作る分には楽ですが、込み入った事をしようとするとWindowsAPIを直接使っているよりも面倒な事になったりします。それにMFCを使いこなすには、最終的にC++のクラスの知識とWindowsAPIの知識の両方が必要になってきます。
WindowsAPI自体は、CでもC++からでも使えますが面倒さはさほど変わらないです。クラスで隠蔽してミニMFCみたいな物を自分で作れば後々は楽が出来ますね。同様にCでもWindowAPIを隠蔽するライブラリを自前で書いちゃえば面倒な事はある程度避けられます。
最近の事情としてはMFCの情報が極端に減ってきています。本もここ5年ほど新しいものは出ていません。本を探す事自体が難しくなっています。需要が無いでしょうか?それともMFCの難しさに気づいたんでしょうか?
なので、今WindowsAPIを組むのならWindowsAPIで直接組むか、.NET系(C#やC++/CLI)で組むことが選べる選択枝でしょう。
私としては、これからオブジェクト指向の道に進むならWindowsAPIをうまくクラス・ライブラリで隠蔽しているC#をお勧めします。

で、勉強の方法ですがWindowsプログラミングで大事な事は関数を丸暗記する事ではなくて、Windowsメッセージの仕組みを理解する事だと思います。それと基本的なメッセージの種類ですね。どんな時にどんなメッセージが飛んでくるかはある程度覚えたほうが良いかと思います。あまり使わないメッセージはメモしておけば大丈夫な程度でしょう。C#に行くとしても、ここの部分は理解しておいた方が良いでしょう。もちろん、WindowsAPIを直接使うなら分からないと話になりません。

Windowsの仕組みの本を読まれて、まず基本的なことから理解してみてはいかがでしょうか?
http://software.nikkeibp.co.jp/software ... mook2.html

dic

Re:windowsのプログラムを作るには

#4

投稿記事 by dic » 10年前

私も独自の見解ですが
1.Cを理解する
2.C++を理解する
3.猫でも分かるプログラミング Windows SDK http://homepage2.nifty.com/c_lang/
の順に理解していくしかないと思います


Windowsは昔とありますが、Linux,UNIX系統の開発の経験があって、それにどっぷりつかってしまった
ということでしょうか?

いきなりDLLの概念を理解されても、それを使う方法がわからないのでは元も子もないと思います

私もいきなりMFCから入り挫折しかけた経験があります
MFCとはMicrosoftFoundationClassの略で、C++を理解していても扱うのは難しいです
SDKとはSingleDeveloperKitの略で、こちらから徐々に慣れていった方がいいです

最近の本はいきなりMFC,C#使ったりと初心者向けではないです

toyo

Re:windowsのプログラムを作るには

#5

投稿記事 by toyo » 10年前

CでWindowsプログラムするのが好きな一人です。
私もdicさんの意見に賛成ですね。
昔VisualC++6.0を買ったころ中に入っていたMFCの解説本で初めてC++とWindowsプログラムに触れました。
挫折しました。
それまでのCプログラムはmain( )で始まってプログラムの進み方がたどれて行くので理解しやすかったのですがMFCだとまずmain( )関数がないのにとまどいました。そして必要な処理をどこに書けばいいのかさっぱりわからず。
その後猫でもわかるのサイトでSDKプログラムに出会い再度Windowsプログラムに挑戦しました。
今度はとりあえずWinMain( )で始まるのに安心。
Windowsではメインループでメッセージを処理しながらプログラムすればいいとわかりそれからはCの書き方でWindowsSDKのプログラムばかりです。
SDKのプログラムに慣れるとMFCのプログラムもメッセージの処理を自動で関数にしているだけとわかり理解しやすくなりました。

猫でもわかるのWindows SDK編はCで書かれていますよ。

バグ

Re:windowsのプログラムを作るには

#6

投稿記事 by バグ » 10年前

他の人も書かれていますが、MFCはクラスライブラリなのでC++の知識が必須となります。
更に言えば、WINAPIについての知識もあればモアベターです。(無くてもMSDNでの調べ方を身に付ければ問題ありません)
ここからは個人的な意見ですが、Windowsプログラミングをやりたいだけであれば、C#やVBで.NETライブラリを使用する方が分かりやすいのではないかと思います。
というのも、MFCと比べると、クラス、メソッド、プロパティなんかの名前が直感的で分かりやすいんですよ。
ただ、トピ主さんは本を読んだり、ネットで情報を集める事に固執し過ぎているように感じます。トライ&エラーを繰り返さないと本当の意味では身につかないと思いますよ。

parapara

Re:windowsのプログラムを作るには

#7

投稿記事 by parapara » 10年前

tk様とsoft様は僕の求めていた事と違いますが、ありがとうございます。
C#だと複雑なものは作れないと聞いた気がします。
薦めてくださった日経本はC++の知識がないと無理な気がします。持っていますが。
dic様toyo様こんなに愚かな私に手を差し伸べてくださりありがとうございます。
まさに私の求めていたものです。
まずC++をやらないとですね。猫でもの本もC++をやってからのほうがいい気がします。
バグ様すいません。愚かな僕は本を読んだり、分んない所をネットで調べるしかできません。
これはもう筋金入りの性格ですね。

追記ここ2年、僕はどっち行こうか色々悩んでいて、もう一度大学行くための勉強をしてるんです。

softya

Re:windowsのプログラムを作るには

#8

投稿記事 by softya » 10年前

>薦めてくださった日経本はC++の知識がないと無理な気がします。持っていますが。
申し訳ないですが、日経本の記述に一切C++は使われておりません。全てC言語です。
なにか、C++に幻想を抱かれていませんか?
C++はあくまでも、C言語にオブジェクト指向のクラスの概念を加えただけのものです。
日経本の内容がC++に見えるとしたら、C言語の勉強を再度された方が良いと思います。

バグ

Re:windowsのプログラムを作るには

#9

投稿記事 by バグ » 10年前

>>C#だと複雑なものは作れないと聞いた気がします。


んなこたぁないです(笑)
よっぽどの上級者とか、スペシャリスト級になれば分かりませんが、大抵の事はできますよ。
WINAPIの関数を使う事も可能ですし、WINAPIでやれる事は全てやれると思って大丈夫だと思います。
更に言えば、.NETを使えば、C#もVBも文法の違いだけでほとんど違いは無いです。

toyo

Re:windowsのプログラムを作るには

#10

投稿記事 by toyo » 10年前

>まずC++をやらないとですね。猫でもの本もC++をやってからのほうがいい気がします。

いや、私もC++はほとんどわかりません。
CオンリーでWindowsプログラムしています。(DirectXのクラスを使うときだけ拡張子を.cppにしてC++としてコンパイルしますがメインのプログラム記述はほぼCとして書きます。)
猫でもの本は持ってませんがサイトの方のWindowsSDK編はCで書かれていますよ。

閉鎖

“C言語何でも質問掲示板” へ戻る