何か創りたい。
http://toshirr.blog13.fc2.com/
* Toshi's Recess Room - Toshi Creates. - 2007年06月 の記事 /
<< 2007/05 - 2007/06 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 - 2007/07 >>

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[ No. ]
[ 日時 : --/--/-- (--.) --:--:-- ]
[ カテゴリ : スポンサー広告 ]


あまり重要じゃないお知らせ

toshi05142@yahoo.co.jp へのメールをメインのアドレスへ転送するようにしていましたが、
止めました。アカウントは生きていますがチェックしませんので、
既にそのような方はいないと思いますがこのアドレスへはメールを送らないでください。

toshirr@csc.jp へのメールをメインのアドレスへ転送するようにしていましたが、
止めました。アカウントも生きていませんので、
既にそのような方はいないと思いますがこのアドレスへはメールを送らないでください。

メインのアドレスは、変わらず toshirr@gmail.com です。
スポンサーサイト

[ No. 570 ]
[ 日時 : 2007/06/28 (Thu.) 22:30:28 ]
[ カテゴリ : 科学技術 ]
[ コメント : 0 ]
[ トラック バック : 0 ]


COM 備忘録

備忘録っぽく残しておきます。同じ単語が続々流れて来ますがご了承。

QueryInterface メソッドは、インターフェイス ID とインターフェイス ポインタへのポインタを渡すと、
指定したインターフェイス ID によって識別される特定のインターフェイスを
渡したインターフェイス ポインタへ放り込んでくれます。
これは実際には、関数ポインタが入っているテーブルへのポインタへのポインタを
セットしているわけですが、そこらへんはコンパイラが適宜よろしく面倒を見ていますね。
pInterface->Method1()
このようなコードがあった場合コンパイラは、

「『変数 pInterface に格納されているポインタが指し示すアドレス』に格納された
 『関数ポインタが入っているテーブルへのポインタ』が指し示すアドレスを基点とし、
 『変数 pInterface の型になっているインターフェイスの定義に於いて
 Method1 が何番目に定義されているか』を元に、
 『Method1 への関数ポインタが格納されているアドレス』を相対的に割り出し、
 それによって Method1 を関数ポインタ経由で呼び出す」

というコードを出力するわけです。非常に助かります。
図にするともっと簡単なのですが、面倒なので割愛します。(ややこしいままですね...。)
COM は言語としてのサポートがあって初めて利用できるものともいえます。

さて、この例でいうと、
変数 pInterface には Method1 を実装している何らかのインターフェイスへの
インターフェイス ポインタが格納されているわけですが、これは CoCreateInstance API か、
既に存在するインターフェイスの QueryInterface メソッドを呼ぶなどして得たポインタですね。

しかし、ポインタは得るばかりでなく自分でセットしてやらなければならない場合があります。
IE コンポーネントからのイベントを受け取る DWebBrowserEvents2 インターフェイスなどです。
これはイベントが起きた際にコールバックしてもらえるように、
AtlAdvise API で依頼する際に必要になります。
この API には、自分で実装した DWebBrowserEvents2 インターフェイスへの
インターフェイス ポインタへのポインタを渡します。

その為に、まず関数ポインタを格納するテーブル、いわゆる配列を用意し、
そこに関数ポインタを格納、そしてその配列へのポインタを格納した変数も用意。
更にその変数へのポインタを格納した変数も用意、
最終的にこの変数へのポインタが渡されることになります。疲れます。
ここまでの処理をすることで、イベントを受け取ることが出来ます。

さて先日、このイベントを受け取るインターフェイスをクラスで実装出来ないかと述べました。
メソッドが利用する為のクラスの中で保持するべき変数も全て保持するとして、
更に関数ポインタを格納するテーブルやそのポインタなども
クラスの中に押し込める、というのも不可能ではないと思われます。

しかし次の、関数ポインタ経由でメソッドが呼ばれる段階でアウトです。
呼ばれるだけならいいのですが、そこで上記の
「メソッドが利用する為のクラスの中で保持するべき変数」にアクセスしようとした場合、
関数ポインタ経由であるが故に、呼ばれたメソッドが自分の属しているクラスの存在を
把握出来ない為、アクセス違反になってしまうのです。
そうするとグローバル領域に Function を定義してそのポインタをテーブルに格納し、
それを経由してクラスのメソッドを呼ぶという手段しかありません。

こういった話は ab.com コミュニティでも何度か挙がっています。
QueryInterface 等のキーワードで検索してみると出て来ます。

長々と書いてしまいました。

更に余談。
学校で Excel の授業。
担当の先生が関数の「引数」を「いんすう」と読んでいました。
なんか気になりました。

[ No. 569 ]
[ 日時 : 2007/06/27 (Wed.) 23:56:59 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


の接続は出来たよう(BlogPet)

そういえば、Toshiが

インターABのメソッドの呼び出しや、
イベントを受け取るクラス(今はただのFunctionをそれっぽく仕立ててるのみ)の接続は出来たよう。
って言ってたけど…

*このエントリは、ブログペットの「Overhand」が書きました。

[ No. 568 ]
[ 日時 : 2007/06/27 (Wed.) 11:24:37 ]
[ カテゴリ : BlogPet / 未分類 ]
[ コメント : 0 ]
[ トラック バック : 0 ]


AB5 x COM

AB5CP4 で IWebBrowser2 インターフェイスをいじっています。

AB4 で実験用に作ったブラウザ(Toss の前身)のコードを移植するところから始めました。
インターフェイスのメソッドの呼び出しや、
イベントを受け取るクラス(今はただの Function をそれっぽく仕立ててるのみ)の接続は出来たよう。
しかし後始末か何かの手違いで、終了時にヌルって撃墜。
AB の問題なのかコードの問題なのかとよく見ると、コードの問題でした。
CoUninitialize があるのに、CoInitialize が無いという、
「逆ならまだ分かるんだけど...」というおかしなミス。
あっさり治り、イベントの受け取りも問題無く出来ています。AB5 でも健在です。

今度はイベントの受け取りを AB のクラスで受け取れないだろうかと調べてみます。

[ No. 567 ]
[ 日時 : 2007/06/24 (Sun.) 22:53:34 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


メリハリ

中間考査は終了。テストが全て返って来るまでにはもう少し時間が掛かります。ヒヤヒヤしてます。
今度はいわゆる文化祭の準備が入って来たり、部活動も大変だったり沢山あります。
のんびり出来る時間との区別で、健康に過ごしたいのですが簡単じゃなく。。。

[ No. 566 ]
[ 日時 : 2007/06/23 (Sat.) 23:03:58 ]
[ カテゴリ : 学校ライフ ]
[ コメント : 0 ]
[ トラック バック : 0 ]


場の雰囲気

AB開発Wiki や MSDN を見ながら、AB5 のクラス ライブラリを勉強中です。
どれだけ活用出来るか分かりませんが、巧く使っていきたいものです。

[ No. 565 ]
[ 日時 : 2007/06/15 (Fri.) 00:14:51 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


正念場

明日が中間考査三日目です。ここ一番で踏ん張らなきゃなんないときです。
終われば StatusFlag の開発に持ち込めます。

で、コードを一から、もといゼロから書き直す宣言をしましたが、
まだまだ AB5 の言語仕様を飲み込んでいません。

それと、CP4 が公開されている段階から開発を始めても後々に問題が起こらないか、
いつまで Beta にするかとかまだ考え込みます。

何にせよ、次こそは綺麗にコードを書きたい。

[ No. 564 ]
[ 日時 : 2007/06/13 (Wed.) 23:13:01 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


きのうは掲示板も実装しなかったー(BlogPet)

きのうは掲示板も実装しなかったー。


*このエントリは、ブログペットの「Overhand」が書きました。

[ No. 563 ]
[ 日時 : 2007/06/13 (Wed.) 11:38:53 ]
[ カテゴリ : BlogPet / 未分類 ]
[ コメント : 0 ]
[ トラック バック : 0 ]


長丁場

明日から金曜日まで、前期中間考査に挑戦です。四日間、九教科もあります。
二学期制なので三学期制より考査が一回少なく、出題範囲が広くて仕方がありません。

それなりの対策を施してから行かなきゃならないのですが、使える時間も少なく、
その中で取りこぼしを抑えていかなきゃならないのですが、覚える範囲も広く、
それでも自分の為に向かっていかなきゃならないのですが、そびえる壁も高く...。

ともあれ、高校初の定期考査、雰囲気を掴んで闘います。

[ No. 562 ]
[ 日時 : 2007/06/11 (Mon.) 22:33:46 ]
[ カテゴリ : 学校ライフ ]
[ コメント : 0 ]
[ トラック バック : 0 ]


ゼロから

突然ですが、StatusFlag Version 2.x のコードを書き直します。
ActiveBasic の最新版で進めていきたいと思いました。

こうやってコードを新たに起こす度に、
今までよりも効率がいいとか書きやすいといった方法も新たに出て来ます。
こうやっていくことで、言語仕様を最大限活用出来るようになりたいです。

その変遷を思い出してみると、
最初はグローバル変数使いまくりの何とも見にくい醜いもの、
次第にローカル変数の使い方を覚え、RAD で構造化スタイルを知り、
思い切ってクラスを使ってみて、アクセス制御の意味も分からず設計が変で、
徐々に理解し、でもまだオブジェクト指向でうまい仕組みというものを作れません。

美しいコードの探求をしてみます。

[ No. 561 ]
[ 日時 : 2007/06/06 (Wed.) 23:19:40 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


きのう(BlogPet)

きのう、対策しなかった?
またきょうToshiで、テストしたかも。
またOverhandは目覚ましにテストすればよかった?


*このエントリは、ブログペットの「Overhand」が書きました。

[ No. 560 ]
[ 日時 : 2007/06/06 (Wed.) 11:10:50 ]
[ カテゴリ : BlogPet / 未分類 ]
[ コメント : 0 ]
[ トラック バック : 0 ]


SideLineSentence Version 0.6

開発する時間が今までなかなか取れませんでしたが、やっとこさ公開出来ました。
掲示板 CGI です。

まだ付けられる機能は残っています。以前、こう箇条で書いてました。

これからの作業は、
・パスワードによるメッセージの編集・削除機能の実装
・でもパスワード無しのメッセージはそんなこと出来ないようにする機能の実装
・でも管理者は専用のパスワードでそこらへんもいじれるようにする機能の実装
・ジャンルによるメッセージの管理機能の実装
・Cookie 周辺機能の実装

上二つは実装済み、四つ目は却下です。もうジャンル別に CGI 分けちゃいました。

一通りのエラー処理は施しましたが、
何か問題があれば旧掲示板の方でも、メールでもなんでもください。

次は StatusFlag をなんとかしようと考えます。

[ No. 559 ]
[ 日時 : 2007/06/04 (Mon.) 17:35:14 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


どーじゃ

今日はたいへん心地よい目覚めでした。日が南中してちょっと暑くなってきました。

突然ですが、プログラムを利用する立場だったユーザーがプログラミングを始めるとすれば、
最初は Windows などの PC で動作するものを作るでしょう。私もでした。
ですが開発されたプログラムというものは、PC で実行されるものばかりではありません。
電化製品やゲームとか、そこらへんに二進数の羅列がぐるぐる回っています。
そしてまた身近なところにそれがありますね。
携帯電話です。

というわけで、i アプリの開発ってどんなもんなんかと思って足を突っ込んでみました。
FOMA ユーザーなので i アプリです。

実際の方法については触れませんが、
Java SDK と、DoCoMo が公開している i アプリ開発用ツールと、
統合開発環境に Eclipse をインストールしました。

なんやかんやで一応実行出来ました。ささやかな感動でした。

これでちゃんとしたソフトを作るには、まず言語仕様をよく見ていかなきゃなんないんですが、
他にもやることがあるので、脳内 ToDo 上の優先順位は低いです。

[ No. 558 ]
[ 日時 : 2007/06/03 (Sun.) 15:16:24 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


久しき休み

今日は何週間ぶりかに、目覚ましを掛けずに眠れます。
部活は大変ですが楽しければいいので、また目覚ましの日々が来ようともひるまずにいきます。

水無月中旬になると中間テストです。範囲も教科も中学校とは桁違いです。
それ相応の対策を練っています。どうすればうまくいくのか、再び更新出来ない日々が続くかも。

AB5 CP4 がリリースされました。
いずれ、それに関する記事でも書いてみようと思います。余裕があれば。

[ No. 557 ]
[ 日時 : 2007/06/02 (Sat.) 22:13:53 ]
[ カテゴリ : 学校ライフ ]
[ コメント : 0 ]
[ トラック バック : 0 ]


プロフィール

  • Author:Toshi
  • 何かを創りたい Toshi の記録


ブログ内の検索


最近の記事


最近のコメント


最近のトラック バック


カレンダー

05 | 2007/06 | 07
- - - - - 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


月別の記事


カテゴリ別の記事


RSS フィード


<< 2007/05 - 2007/06 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 - 2007/07 >>
* Toshi's Recess Room - Toshi Creates. - 2007年06月 の記事 /
http://toshirr.blog13.fc2.com/
(C) 2005 - 2009 Toshi, All Rights Reserved.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。