zillionプロジェクト開発ブログ 忍者ブログ

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ちょっと長編ですが、またあのクオリティでの講座です。
ただ、プログラマーとして自分で自立(他人に聞かなくてもできるようになるという意味で)するためにはどうしたらいいのかというテーマです。(もちろん僕もまだまだ頼り気味ですけど)

" 'ζ_,`"「よし、基本的なWIndowsアプリケーションの作成はここまで。んじゃあ、何か作ってみよう。そうだな、まずはウィンドウにメニューバーを付けてみよう。」

~~~~~~~~~~~~~~~~~~~~~~~~~数分後~~~~~~~~~~~~~~~~~~~~~~~~~~~~
" 'ζ_,`"「(2人の画面にはflashゲームがw)おいおい、全然進んでないじゃないか~~」

( ゚д゚ )「だってわかんないんですもん」

(´Д`)「そうだそうだー教えてないとこ作らせるとかずるいぞ~」

( ゚д゚ )「N目(学校の(ryな教師)みたいだ~」

" 'ζ_,`"「おいおい、だって自分でどうにかしようと思わないと、一生何もできないぞ?とりあえずリファレンスは見たのか?」

( ゚д゚ )「りふぁれんす?」

" 'ζ_,`"「前教えただろう。MSDNだよ。とりあえずwindowsでのC開発についてはここを見ればすべてわかるぞ・・・多分」

( ゚д゚ )「見たけど・・・・役割別に検索できないし・・・わからないし・・・」

" 'ζ_,`"「そうだな、じゃあここで、自力でこういう技術資料を読む力を持とう。というテーマで教えよう」

(´Д`)「歯医者なんで帰っていいですか~?」

( ゚д゚ )「お前先週も言ってただろ!」

" 'ζ_,`"「ダメです(キリッ」
          「メッセージボックスを例にとりましょう」
picasaweb.google.com/112707182961116286529/DropBox

( ゚д゚ )「なんかいっぱいあってわかりませ~ん」

" 'ζ_,`"「そうだね。でも、ちゃんとわかるんだよ。WindowsAPIなら、MessageBox関数だね。」

( ゚д゚ )「なんで~?」

" 'ζ_,`"「MessageBox関数ってなってるからさ。.Net Frameworkなら、横に(System.~~~~)ってなってるよ。
MFCなら~~~::~~~ってなってるのが多いね」
picasaweb.google.com/112707182961116286529/DropBox

( ゚д゚ )「わからね~。どういう構造になってるか把握しにくい・・・」

" 'ζ_,`"「それがMSDNさ!でもそれを理解できるのが一流なのさ(自分は違いますけどw)」

「最初の部分をよく見よう。
int MessageBox(
HWND hWnd,
LPCTSTR lpText,
LPCTSTR lpCommand,
UINT uType
);
まずはこの意味を理解することが大切だ。
最初にわかりやすいようにこう考えよう。
int MessageBox(
HWND,LPCTSTR,LPCTSTR,UINT
);

型だけにしちゃいました。

そう、この4つが引数。そしてint MessageBoxから、int型の数を返値として持つことがわかるね?


( ゚д゚ )「はーい」

" 'ζ_,`"「

hWnd
[入力]作成したいメッセージボックスのオーナーウィンドウのハンドルを指定します。NULL を指定すると、オーナーウィンドウを持たないメッセージボックスが作成されます。
lpText
[入 力]表示したいメッセージを保持する、NULL で終わる文字列へのポインタを指定します。
lpCaption
[入 力]ダイアログボックスのタイトルを保持する、NULL で終わる文字列へのポインタを指定します。NULL を指定すると、既定のタイトル( 「エラー」)が表示されます。
uType
[入力]メッセージボックスの内容と動作を指定します。 次のフラググループの任意の組み合わせを指定します。


こう書いてあるね。さっき変数名消しちゃったから、こっちもこうやって考えればいいや。

第一引数(HWND)
[入力]作成したいメッセージボックスのオーナーウィンドウのハンドルを指定します。NULL を指定すると、オーナーウィンドウを持たないメッセージボックスが作成されます。
第二引数(LPCTSTR)
[入 力]表示したいメッセージを保持する、NULL で終わる文字列へのポインタを指定します。
第三引数(LPCTSTR)
[入 力]ダイアログボックスのタイトルを保持する、NULL で終わる文字列へのポインタを指定します。NULL を指定すると、既定のタイトル( 「エラー」)が表示されます。
第四引数(UINT)
[入力]メッセージボックスの内容と動作を指定します。 次のフラググループの任意の組み合わせを指定します。



( ゚д゚ )「ほぉ~。なるほど、わからん」

" 'ζ_,`"「・・・・・要するにだな、関数にどのような値を渡したらどのようなことになるかのリファレンスなんだ。これさえ見れば、あとは自分で組めるぞ~」

以上、続きは明日。眠くなったww





拍手[1回]

PR

僕の後輩に、C++を教えてくれと言われて教えたことがあります。
教えたとき、参考書を見て、わからないところを教えていたのですが、参考書の記述上わかりにくいところが多々あったのです。
初心者だから気づくこともあるんですね。
そんなときのための、講座、というか、ここには気を付けて覚えろよ?ってものです。
ではでは、始めましょう。

※実際にあった話をアレンジしています。
後輩A,後輩B,僕が登場します。

(´Д`),<-後輩A
( ゚д゚ )<-後輩B
" 'ζ_,`"<-僕(うざい顔してますねw)
[1]制御文の落とし穴?

(´Д`) 「なんで、while(true){~~}って無限ループになるんですか?」

" 'ζ_,`"「そりゃあ、trueだからだろう」

( ゚д゚ )「でも、本には、while(条件式){~~~}って書いてありますよ?trueって条件式じゃなくて値じゃないんですか?」

" 'ζ_,`"「意味的に考えてみよう。trueって日本語訳で真、falseって日本語訳で偽。つまり、trueというのは、正しい。falseというのは正しくない。という意味だね。条件式は、正しいときはtrue、間違っているときはfalseを返すと考えたらわかるかな?」

( ゚д゚ )「ってことは、whileって()の中身がtrueなのか、falseなのかを見ているんですね。」

(´Д`)「本の条件式って記述だけではわかりにくいな。多くの解説サイトでも、if(条件式){~~~}とか、while(条件式){~~~}ってなってますね。」

" 'ζ_,`"「そうだね。注意しなきゃいけないね。当たり前の話だと思っている人も多いだろうからね。」

( ゚д゚ )「ということは、if(true){~~~}なら、かっこの中が絶対に実行され、while(false){~~~}なら、かっこの中が絶対に実行されないんですね。」

" 'ζ_,`"「そうだよ。だけど、それって条件分岐とも、ループとも言わないんじゃないか?」

( ゚д゚ )「・・・・」

[2]三項演算子って?

( ゚д゚ )「なんか、プログラム中に?とかなんか出てきてるんですけど・・・」

" 'ζ_,`"「あの、それだけじゃ俺が?なんだけど・・・」

(´Д`)「あ~、なんか俺の本には書いてあったよ。三項演算子でしょ?」

" 'ζ_,`"「そういうことか。確かに、解説書によっては乗ってなかったりよくある話だよな。でも、お前ら日頃俺のソース見てるから、よく見てたはずだろ?」

( ゚д゚ )「見ても、理解できない。コメント挟めし。」

" 'ζ_,`"「・・・ごめんなさい」

( ゚д゚ )「んで、結局?なんなの、このサンコウエンザンシって?しっかり説明してもらえる?」

" 'ζ_,`"「は、はい。わかりました。(汗)」
「三項演算子は、?演算子と、:演算子を利用するよ。 真か偽(条件式) ?  結果A:結果Bという文法を使うよ。条件式側が、真ならば結果A,偽ならば結果Bを返すんだ。
つまり、そうだなぁ、ifの代わりみたいな使われ方だね。
だけど、読みにくくなるから、使わなくてもいいよ」

(´Д`)「読みにくくなるのに使うなんて優しくないですね。ドS~~」

" 'ζ_,`"「教えてる時点で、優しいじゃないか。」

( ゚д゚ )「先輩として当たり前でしょ~」

" 'ζ_,`"「はいはい、すいませんね」

[3]メモリリーク(・∀・)
" 'ζ_,`"「さて、君らもずいぶん発達したね。」

( ゚д゚ )「ずいぶん、時間割きましたからね。おかげで試験壊滅的でしたけど、どうしてくれるんですか?」

(´Д`)「そんなことこの人に言っても仕方ないぞ、お前とは違ってalways壊滅的なんだから。」

" 'ζ_,`"「悪かったな。んで、なんか聞きたいことがあると言ったね。」

( ゚д゚ )「メモリリークってどんな時に起きますか?」

" 'ζ_,`"「動的に確保したメモリを解放できないときだね。」

(´Д`)「そのほかには?」

" 'ζ_,`"「ん?メモリリークの定義がそれなんだからそれしかないんだよ。」

( ゚д゚ )「でも、確保したメモリはOSが後処理してくれるんじゃないんですか?」

" 'ζ_,`"「動的確保した領域は、必ずdeleteしないとダメだよ。クセつけとくといいよ。」

( ゚д゚ )「ちゃんとdeleteしてますよ。ナメるなし」

" 'ζ_,`"「ん~?delete二回呼び出したりとかしてない?」

( ゚д゚ )「え、ダメなの?deleteは多い分には大丈夫かなって思って・・・」

" 'ζ_,`"「まあ、参考書とかには必ずdeleteしましょうとしか書かれてないもんね。」

(´Д`)「死んだやつをもう一回殺すことはできないもんね。」

" 'ζ_,`"「そうだね。ほかにもいろいろメモリリークを起こす原因はあるはずだよ。チェックしようね。だけど、まず基本はどの変数がメモリリークしているのか探ることが最初だね。」

( ゚д゚ )「でも、ほっといてもエラー出ないしいいか。」

" 'ζ_,`"「プログラムが大きくなればなるほど、探すのが大変になってしまうよ。今のうちに捜しておくべきだな。」

(´Д`)「ざまぁ」

( ゚д゚ )「いいし、直すし」

" 'ζ_,`"「メモリリークは探すの大変だぞ~。俺は帰るから頑張ってな」

( ゚д゚ )「なあ、二人でdeleteしたらメモリリーク起こすかな?」

(´Д`)「何を?」

( ゚д゚ )「あいつ・・・」

以上、次回はリファレンスを読み解くコツについて話した時の話があります~

リファレンス読む力は非常に重要なので、是非読んでほしいです。

それでは、読んでくださりありがとうございました。




拍手[3回]

やばいっすよ~
一応やっとかないと~

なので、ブログの更新はしますが、おそらくOEの更新はないでしょう。
ネタが特にないですが、明日からは、そうですね~初心者が見落としがちな文法について解説しましょうか。

意外にも初心者が知らないことって超基本的なことだったりするんですよ~。

というわけで、ほかの大手文法解説サイトとともに、気を付ける点として読んでほしいです。(初心者にしか用のない内容になると思います)



拍手[0回]

とりあえずウィザードたちです。




まだ、外見ばっかりで、内部処理が描かれているのは新規作成ウィンドウだけです。
試験勉強、一応してます。やらないとまずいんで。
理系科目だけでも、とりあえずとっておけばいいかな~って

文系は単位さえ取れればいいなって思ってます。

とりあえず、これから進むのが遅いのにここでサーバー構想とか話してしまうと、ネタが尽きるのでこの話はまた明日。

ところで、携帯の充電器なくして電池がもうありません・・・
ヤヴァイなぁ
家族全員、メーカー違うんで形は合わないし・・・
それではおやすみなさい

拍手[0回]

今は時間がありませんが、時間があるとき、何かの解説とかしてみたいです。
hiroumaumaさんのブログに刺激され、もう一度、プログラムを組んでみよう。そう思ったときのこと、今度は俺も誰かに伝えたいなって思った。
だが、今は期末の前だし、OEにとっての重要な時期。
成し遂げてからでも遅くはないだろう。


さて、OEのXMLスキーマを、MSXMLの実装も目途が立っていないまま、しようという事にしました。
正直、XMLスキーマを定義してまで複雑な出力ファイルじゃなくてもいいと思うのですが、後から実装すれば当然互換性がなくなります。
できる限り初めのうちにやっておくべきでしょう。
できることは最大限尽くす。
それを目標にします。

あと、明日はスクショの日です。
完成しているいろんなウィザードを見せたいと思います。
夏休みはいれば、エディタ自体のベータ版はすぐそこですよ?
ただ、ランタイムがないとエクスポートしてテストプレイ・・・なんてことはできないので、どうでしょうか・・・・
ベータ版と自信を持って言えるものは、夏休み終わるぐらいですかね。

とりあえず、再来週は試験なので、制作活動が少しばかりおろそかになるかと思いますが、終わったらガッとやるので~

拍手[1回]

◎ カウンター
◎ カレンダー
08 2025/09 10
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
◎ 最新CM
[10/24 名無しの権兵衛]
[08/30 名無しの権兵衛]
[08/14 no name no future]
[08/05 ゲームサークルEaSt]
[07/28 リオウ]
◎ プロフィール
HN:
solilpquy
年齢:
30
性別:
男性
誕生日:
1994/09/22
職業:
人間
趣味:
趣味ねぇ~~う~ん・・・
◎ ブログ内検索
◎ バーコード
◎ アクセス解析
◎ フリーエリア
◎ フリーエリア
Script: Ninja Blog 
Design by: タイムカプセル
忍者ブログ 
[PR]