わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 Windows メッセージを使いこな す -Windows 流オブジェクト指向 - とっちゃん 高萩 俊行 Microsoft MVP for Windows SDK 2005/10-2007/09.

Slides:



Advertisements
Similar presentations
オブジェクト指向 言語 論 第八回 知能情報学部 新田直也. 多相性(最も単純な例) class A { void m() { System.out.println( “ this is class A ” ); } } class A1 extends A { void m() { System.out.println(
Advertisements

TCP/IP によるチャットプログラ ム 薄井 秀晃. 基礎知識編 TCP/IP とは? IP とは・・・ Internet Protocol の略称であり通信方法の技術的なルールで あり、実際にデータを送受信する前にデータを小さなデータ に分割し、それに発信元と受信先の IP アドレスを付加させて.
ソフトウェア工学 理工学部 情報システム工学科 新田直也. 演習問題 1 の解答例  入庫処理の DFD 酒屋の在庫問題の DFD( 入庫処理 ) 更新情報 在庫ファイル 更新処理 倉庫係 在庫不足リスト 在庫ファイル 出庫指示書 新規出庫 判定 出庫指示書 作成処理 出庫依頼 積荷票.
ソフトウェア工学 知能情報学部 新田直也. オブジェクト指向パラダイムと は  オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる.  ソフトウェアを処理や関数ではなくオブジェク.
Scala + Liftフレームワーク その2.
SSP in a Nutshell #1.5 最近の新機能よせあつめ
イベント イベント: マウスの操作、キーボードの操作、ファイル操作など システムやユーザーからの入力・出力のこと
4 相互作用図 後半 FM13001 青野大樹.
1.1 C/C++言語 Hello.ccを作りコンパイルしてa.outを作り出し実行する
~手続き指向からオブジェクト指向へ(Ⅰ)~
アルゴリズムとデータ構造1 2007年6月12日
アルゴリズムとプログラミング (Algorithms and Programming)
VBA H106077 寺沢友宏.
自作組込みOSを エミュレータで 動かしてみた 坂井弘亮 (KOZOSプロジェクト) Twitter ID:kozossakai.
C++ むかしばなし episthmh わんくま同盟 Microsoft MVP for
最適化ソルバーのための Python言語入門
OSとコマンド OS:コンピュータを使うための基本プログラム コマンド:OS上で使用できる命令 OS本体であるカーネルの内部コマンド
ASP.NET開発標準化を考えてみよう! わんくま同盟 東京勉強会# /03/15 mxb & 片桐継.
ASP.NET開発標準化を考えてみよう! わんくま同盟 東京勉強会# /03/15 mxb & 片桐継.
CHAPTER1 UMLとオブジェクト指向の基本概念(2)
第6章 2重ループ&配列 2重ループと配列をやります.
Androidソースコード公開後のJNI
MSBuild 色々出来るよ 2011/04/02 お だ.
MS製開発ツールの歴史とか….
社会人学習講座 「Javaプログラミング概論」
AspectScope によるアスペクトとクラスのつながりの視覚化
C#とC++とオブジェクト指向 上甲 健史.
UML入門 UML PRESS vol.1 より 時松誠治 2003年5月19日.
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
C言語講座 第3回 ポインタ、配列.
細かい粒度でコードの再利用を可能とするメソッド内メソッドのJava言語への導入
ソフトウェア工学 知能情報学部 新田直也.
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
Windows Azure (CTP) 触ってみた
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
Microsoft MVP for Development Tools – Visual C++
R流・C#マルチスレッドの復讐 2009年05月16日 R・田中一郎
ローカル変数とグローバル変数 ローカル変数  定義された関数内だけで使用できる変数 グローバル変数 プログラム全体で使用できる変数.
Microsoft MVP for Development Tools – Visual C++
オブジェクト指向の …ナニ? わんくま同盟 名古屋勉強会 #5 2008/12/6 Lightning Talk by biac
C#言語ソースプログラムの原型 C言語 C#言語 Hello World! Hello Students! オマジナイ! 適当なクラス名
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
Windows Azure (CTP) 触ってみた
Microsoft MVP for Development Tools – Visual C++
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
お このバナーをご自分のメッセージでカスタマイズしましょう! 文字を選んで使いたい文字を入力するだけです。1 つのスライドに 1 文字入力してください。
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
とっちゃん Microsoft MVP for Visual C++
とっちゃん Microsoft MVP for Visual C++
とにかくゲーム作ってみよう (0からのゲームプログラミング)
UMLの概要とオブジェクト指向の基本概念
第7回放送授業.
★C++/オブジェクト指向実践企画★ Othelloゲーム作成
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
Windowsアプリケーション プログラミング
アルゴリズムとデータ構造1 2009年6月15日
ゲームのタスクシステム 導入編 レベル2くまー By keychan.
モグラたたき.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
アルゴリズムとデータ構造 2010年6月17日
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
オブジェクト指向言語論 第十回 知能情報学部 新田直也.
C++ むかしばなし episthmh わんくま同盟 Microsoft MVP for
C++ むかしばなし episthmh わんくま同盟 Microsoft MVP for
Presentation transcript:

わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 Windows メッセージを使いこな す -Windows 流オブジェクト指向 - とっちゃん 高萩 俊行 Microsoft MVP for Windows SDK 2005/ /09

わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 アジェンダ Windows を支えるオブジェクト オブジェクトを作るには … オブジェクトとやり取りするには … やりとりを支える仕組み 流れを見てみる ちなみに利用言語は、 C 言語ですのであしから ず。

わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 オブジェクト指向って? 本題とは関係ありませんが … 中国語で何と書くかというのが出ていた … Object は「対象」 Class は「類」 と書くそうです。 ちなみに、 OOP は「面向対象的程序設計語言」だそうです。 なんとなく書いてみたかっただけです

わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 オブジェクト指向って? オブジェクト指向の肝ってなんなんだろ う? – よく言われているのは? 隠蔽 抽象化 多態性

わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 Windows を支えるオブジェクト Windows のオブジェクト – 基本はハンドル型 名前なし – おもにカーネル (OS のコア部分 ) で利用 – 見た目は単なる void* 名前あり – これが原則 –DECLARE_HANDLE() マクロ –#define STRICT を定義しないと名前なしと同じ – もちろんユーザー定義も可能 ( あまりやらないけど ) その数は …

わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 実際に見てみましょう

わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 ( Window) オブジェクトを作るには … 新規作成 – クラスを定義して、中身を実装する カスタマイズ – 既存のクラスから派生する サブクラス化 – すでに存在する処理を横取りする フック – 簡略化した実装を提供する 専用プロシージャ

わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 ( Window) オブジェクトを作るには … クラスを定義 –WNDCLASSEX にもろもろ設定して … –RegisterClassEx で登録する ちなみに、 RegisterClass は 3.x 用 (≠16bit 用 ) クラスを実装 –WndProc( ウィンドウプロシージャ ) を作成 メソッドの実装と同じ意味

わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 実際に見てみましょう

わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 オブジェクト (HWND) とやり取りするには … 基本のやり取りはメッセージ – メッセージは処理されるタイミングで2種類 その場で処理する SendMessage 後で処理する PostMessage SendMessage は用途ごとに複数 –SendMessageCallback –SendMessageTimeout –SendNotifyMessage

わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 オブジェクトとやり取りする方法 PostMessage にも類似品がある –PostThreadMessage –PostQuitMessage –PostAppMessage そのほかにも関数があるが … – 今回はメッセージの話なので、省略

わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 やり取りを支える仕組み メッセージ キュー (Message Queue) –(Window)Message を制御するためのバッ ファ – 優先順位付きの FIFO(First-In First-Out) –Microsoft Message Queue (MSMQ) Server 同じようですが全く違うものですので混同しない ように

わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 やり取りを支える仕組み ( メッセージキュー ) いつ作られるの? –HWND が作られるとき – メッセージを問い合わせたとき – スレッドにメッセージが投げられた時 要するに必要になったとき 作成される単位は? –(Windows の ) スレッドごとに一つ 存在を確認することはできない

わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 やり取りを支える仕組み メッセージが流れるようにする方法 –GetMessage を使う –PeekMesage を使う –MsgWaitForMultipleObjects を使う –MsgWaitForMultipleObjectsEx を使う 「いずれか」を利用して メッセージループを作成 する

わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 流れを見る ( キューの構造 ) メッセージキューは優先順位付きの特殊 なキュー –Send キュー –Post キュー –WM_PAINT キュー –WM_TIMER キュー

わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 流れを見る メッセージループで見えないもの –Send されたもの メッセージループで見えるもの –Post されたもの – スレッドあてのもの – システムを支えるもの

わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 流れを見る Send キューは同期専用 – 同一スレッド内では、直接呼ばれる – 別スレッド ( 別プロセス ) では、間接的に呼ば れる 単一のスレッドで処理される !

わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 参考資料 URL –Messages and Message QueuesMessages and Message Queues