まず持ってから

「もちつもたれつ」「ギブアンドテイク」でもいいんだけどまず”もって”から、つーことで

CDROMドライブ

2010年07月25日 17時42分01秒 | プログラム
とりあえず、前フリの300ページは一通り読んだ>>WindowsXPデバイスドライバプログラミング-入門と実践
読んだ感じでは、USB接続のCDROMドライバならある程度パターン化された処理っぽくてなんとかなりそう、かなぁ

で、テスト用に素の状態のXPも準備できた。やっと実際にコードを書いてみて色々試してみるか!と意気込んでみたんだけど、ここで問題発生。この本でのターゲットは「USB2.0のCD-ROMドライブ」。なので、電器屋にCDROMドライブを買いに行って、そこで初めて気がついた。
「今時、USB接続のCDROMドライブなんて売ってない!みんなDVD対応ドライブ!!」
ちょっと考えて見れば分かるんだが、そうだよなぁ>>DVDドライブのみ

急遽、ハードオフに行ってみてもやっぱりUSB接続のCDROMドライブなんてジャンクコーナにもない。なんてこった!

上記の本を流し読みした知識で判断すれば、
USBのマスストレージクラスに対応していれば、FDでもDVDでも問題なさそう。だけど、USBコマンドに乗せるATAPIコマンド、というものがCDROM/DVDROMで異なっている、らしい。で、そのあたりの切り替えを頭の中で出来る知識はまだない。だからなんとかしてCDROMドライブを買わなければ。
との結論に達したところが今。

書き終えたらamazonを覗いてみるか。他に使い道ないから安いといいな>>CDROMドライブ

次のプログラムネタ

2010年07月19日 23時09分01秒 | プログラム
長い間モヤモヤしてて落ち着かなかったVBでのエラー処理はこの本のやり方でなんとか落ち着きそうなので、COMの勉強からスタートしたプログラムネタ:ユーザ環境でのプログラミング は一区切り。

そこで、次のネタは大分前から積読状態だったこれをベースにUSB周りをやってみようかなぁ、といろいろ準備中。WinUSB.dllはvistaからは最初からインストールされているし、XPにもDDKを使えばOK、らしいのでシリアルポート替わりに使えそう(MacBook上のXPからUSB-Serialを使わなくてもイイ?)

まずは自作デバドラを試す環境用にスッピンのXP環境を準備したんだけど、これが初めての「自作機環境へのXPインストール」。長い間ノート環境が(Mac&Win共に)メイン環境だったし、そもそも一体型のパソコン(iMacとか)しかまともに使ったことがないことに初めて気がついた。

自作PCにXPをインストールする載ってメンド臭いね。

コピペ対策

2009年12月04日 22時31分15秒 | プログラム
Excelのコピペ対策に
 a:セルの位置指定の相対座標・絶対座標をちゃんと書き分ける
 b:きれいにコピペできるよう使っていないセルを利用する
 c:セルに書込む関数をLISPっぽくインテンドさせて書込む

これで開発効率向上!
特にbを導入したおかげで複数のセルの修正が簡単にコピペで対応できるようになった&最終的には相対座標表記だけに統一できた!!万歳
cなんかもIF文が2重3重にネストしている場合に読みやすさ&デバッグの効率が違う。

おかげで案件が実データでの動作確認へ移行でき、全体の三分の一くらいのデータで動作確認問題なし(残りはまだ未確認)。
今日は良い1日でした。

400枚のシート

2009年12月01日 22時18分56秒 | プログラム
Excelのマクロで自動化はいいんだけど、マクロ処理完了後のシート数が400枚を超えていた・・・

それに、どこかで解放処理が抜けているのか繰り返し処理の途中でエラーで停止するとファイルを開き直さない限り上手く動いてくれなくなる。止まる所は毎回同じで、ひな形となるシートのコピー処理で止まってるから原因追及はできるのかもしれないけど、止まる事も「ユーザへのリアクション」とゆーことで現状維持(w

ま、実行の過程は随時Excelのシートに反映させているから、途中で中断しても中断の手前から再開できるような作りにしてるけど、ちょっと悲しい。

SQL一夜漬け

2009年09月27日 20時18分02秒 | プログラム
仕事で使う必要が出てきたのでVB6とSQLの復習を一夜漬けで実行。

VB6のほうはExcelVBAでやっているのでコーディングスタイル以外は何とかなる(あのコードはやめて!!!)。DB相手のプログラミングはもう何年もやっていないのでSQLの書き方を忘れているし、Accessの使い方も完全に忘れている。そこで急遽リハビリ練習用にSQL書き方ドリルで1日中勉強。

この本の良い所は
 「サンプルSQL実行環境がついているのでAccess等のソフトが要らない。」
これにつきます。サンプル実行用にデータ等も準備されているので準備に時間がかからず、一夜漬け復習にはもってこい。このお手軽環境で手早く試行錯誤に入れるので昔の記憶を引き出すのには助かっています。


今まで仕事できてなくてごめんね~~~!

連載順記録用マクロ修正

2009年06月13日 23時38分41秒 | プログラム
連載順記録用マクロを修正

修正箇所は
・表紙になっている時にセル背景に色を手動で付けていた処理を連載ページ記録用マクロに統合
・データ一覧から検索を行った時のUI(フォーカス位置)を修正

ToDoはいろいろあるけど気にしてる所は次の2点
・新規連載のデータ用フィールドを追加するマクロ(挙動がしっくりこん!)
・グラフ作成用マクロ
グラフは後回しでもいいけど新連載対策は速く決めたいなぁ


idlファイル

2009年04月26日 22時02分17秒 | プログラム
正規表現を使うのにVBScript.dllからidlファイルを作って、・・・としてたので、それならXML(MSXML)の時はどうだった?と自分にツッコミをいれて、その調査が今日の目的。

XMLの時はCComPtrからCLSID_XMLDocument(MSXML.h)を指定して、IXMLDocumentを生成。この辺りの宣言はすべてVisualStudio側のinclude/MSXML.hであらかじめ準備してある。
VBscript.dllのRegExpの場合は、ITypeInfo Viewerから*.idlを生成。この後、生成されたidlからmidl.exe を使い、ヘッダファイルを生成。CLSID_RegExp が 生成されるヘッダに宣言されている。

さて、この2つがどうつながるのかな?と思っていろいろ覗いていると、VisualStudioのincludeヘッダにMSXML.idlが・・・
ビンゴ!!!

idlファイルからmidl.exeを使い独自ヘッダもつくれるし、レジストリを覗いた時にみつけた値との整合性も取れているし、COM経由で作っていた時の説明もつながった。試しにMFCでRegExpを使ってみたら、COleDispatchDriverのサブクラスをウイザードで作って、COM+MSXMLと同じように使える事を確認。
よくやった>>オレ

VCで正規表現

2009年04月25日 00時45分59秒 | プログラム
やった!VCでvbscript.dllを使った正規表現のサンプルができた

VCで正規表現
とか
Microsoft Visual C++ 6、正規表現を使う
とか
を参考にコードを書いていたんだけど、ITypeInfo Viewerから*.idlファイルの生成の段階で、インターフェースの途中までしか出力してくれず、挫折してました。

そこで、ツールから出力するのはあきらめてコピペで*.idlを作成。その後、生成したidlファイルをmidl.exeを使ってヘッダとか関数テーブルを生成、のはずがここでもエラー!エラーをみると、vbscript.dll内のインターフェース:IMatch.Length() がうまく一致していない(?)みたいなので、この関数のインターフェースを手動で除去し、ヘッダ、関数テーブルを生成。
これでやっと、リンク先と同じ状態になれた。(←ほんとか?w)

あとは、CでCOMのサンプルコードを書いて、テスト、動作確認、完成!
放置してた宿題が1つ終わった。よくやった>>俺

頭のおかしい人:4KBでこれかよ!?

2009年04月20日 21時11分51秒 | プログラム
あちこちで話題に上がってるデモ画像

Elevated by RGBA and TBC

この動画を4kbのexeで表示できるとは世の中には頭がおかしい人がいるもんだなぁ
さすがに引いた画面をみると、計算で生成された画像かなぁ、と思うシーンもなくはないけど、それでも、「4KB」ってどういうことよ!?4KBってアルファベット文字でいえば、4096文字よ?

DirectXで目一杯計算させるプログラムをダイエットツールを使ってファイルサイズ縮小をさせているみたいだけど、それでもすごすぎ。