プログラミング

2009/11/02

VBDOXを日本語識別子対応にしてみた

他人の作ったVBのソフトを改修するという仕事がやってきて、まずは解析しながら資料作成、ということでDoxygenでドキュメントを作ろうとしたのですが……

あれ?なんか見出しの数が少ないな……。

……う。モジュール名とかコントロール名とかガンガン日本語使われてる……orz

このままでは使えないけど、Doxygenの改造は私には荷が重い……別の手段を探そう。

続きを読む "VBDOXを日本語識別子対応にしてみた"

| | コメント (0) | トラックバック (0)

2008/12/12

キーボード入力処理覚え書き

勘違いしそうになったので、メモ。

Windows APIでkeybd_eventやSendInputを使って、以下のように書く場合、第1引数に小文字を持ってくるのは間違い。

keybd_event('A', 0, 0, 0);
keybd_event('A', 0, KEYEVENTF_KEYUP, 0);

第1引数は「入力したい文字」ではなくて、「押したいキー」で、英文字キーのキーコードが大文字の文字コードと一致してるからこう書けるだけ。

Caps LockがOFFで、この前後にShiftの押したり放したりも無い場合、入力されるのは大文字ではなくて小文字。

| | コメント (0) | トラックバック (0)

2008/11/18

今日のorz

実行環境の制限で、デバッグ時には一部機能を殺さなくてはならない状況で、デバッガでバグが再現しないと思ったら、よりによって、通常時とデバッグ時で処理を分岐させているところにバグがあった……orz

| | コメント (0) | トラックバック (0)

2008/11/13

Visual Studio .NET 2003 の orz

バージョン情報リソースを編集して、うっかり保存せずに閉じようとしたら、何も言わずにアプリケーションごとお隠れになってしまわれた。

エラーメッセージも出ないし、コアダンプしてる様子もないし、落ちたとかそんな感じじゃなく、exit()でいきなり終了してるっぽく見える。

他にも編集して保存してないファイルがあったのに……orz

| | コメント (1) | トラックバック (0)

2008/10/29

VC++のリストボックスのあほー!

以前にVBで作ったCSV処理クラスをVC++に移植した。

汎用性を考えるなら、標準C++で書くべきよね、と思いつつも移植の手軽さに負けてMFCで書く。

簡単な動作確認のために、エディットボックスに入力した文字列をCSVの行として項目に分解して、リストボックスに表示するプログラムを作る。

初期値の設定間違い等のバグを修正して、これで正しく動くはずなのに、何故か1つ目と2つ目の項目が入れ替わって表示される。デバッガで処理を追ってみると、文字列を分解して項目に分けたものをリストボックスへ追加するところは正しい順序で行われている。私がリストボックスの使い方を間違えてるのだろうか……?

……あれ?

表示された処理結果を眺めていて気が付いた。

これ……もしかしてソートされてる?

よくみたら、リストボックスのSortプロパティがTrueになっていた。

そんなもん気ぃ付けへんわー!ヽ(`Д´)ノ

| | コメント (3) | トラックバック (0)

2008/10/22

VC++のCSocketの馬鹿ー!!

ソケット通信を扱うプログラムを組む必要に迫られて、そんなの大学の実習以来だし、時間的な余裕もないから、動作実績のあるコードを引っ張ってきて改造しようと考えました。

使っている開発環境はVisual C++ .net 2003なので、とりあえずサンプルコードのCHATSRVRに手を加えてみようと、ソケットがらみの部分だけ取り出して、CHATSRVRの通信内容に依存する部分を汎用的な感じに書き換えていきました。デバッガで起動して通信相手のアプリとの通信を試してみたところ、一応動作してるらしい……はずが、しばらく動かしてると、何故か通信が止まってしまいます。

通信しては内容をエディットコントロールに書き出すように作ったのですが、最初の1往復分のログしか書き出されません。

続きを読む "VC++のCSocketの馬鹿ー!!"

| | コメント (0) | トラックバック (0)

2008/04/04

クラスの中にアクセスする必要がなければ、クラス名の宣言だけでよい

C++ ラビリンス Tips (1) より。

な、なんだってー!!

そんなことが許されるのは、クラスポインタを定義するときだけかと思ってました。だって、ねえ。定義がないとインスタンスのサイズが分からないじゃないですか。

むぅ。今まで無駄に多重インクルードしてたのかしらん。#ifndef で多重定義は回避してても、無駄に何度も読み込んでたのかも。

| | コメント (0) | トラックバック (0)

2008/01/28

別の本屋の傾向も見てきた

1/26の続きです。

今日は天王寺の喜久屋書店とユーゴー書店を見てきました。喜久屋書店は私の知っている大型書店の中では特にプログラミング言語系の本の品揃えがいいように思ってたので。実はよく行く場所ではないのですが。

続きを読む "別の本屋の傾向も見てきた"

| | コメント (0) | トラックバック (0)

2008/01/26

言語も淘汰されるらしい

久しぶりにパソコンショップの書籍売り場の言語系の棚の辺りを眺めてみました。

……なんかすごく今の流行に偏っているような。

概略としては、メインはVisual Basic、C、C++、C#、Javaでそれぞれ棚3~4段程度、次いでPHP、ASP辺りが棚1段分程度、Perl、Python、Ruby辺りが棚1/2段程度、DelphiとKylixで1/3段程度、LISPはCommon Lispが1冊とEmacs関係で数冊、COBOLとFORTRANが1冊ずつという具合です。

続きを読む "言語も淘汰されるらしい"

| | コメント (4) | トラックバック (0)