プログラムの記事一覧 2ページ目

30日でOSができる?

30日でできる! OS自作入門

「プログラミングの基礎からはじめて、30日後にはウィンドウシステムを有する32bitマルチタスクOSをフルスクラッチで作り上げるという入門書。」だそうです。入門書なのに30日でフルスクラッチOSって目標高すぎない?でもOS作りには興味があるので、ちょっと読んでみたいな。

俺様httpd制作中

俺様httpd、ちょこっとずつバージョンアップ中。

ファイルシステムからファイルを読むようにして、Response Headerもそれに従うようにしたり、超簡易CGIも実装して GET に続くパラメーターを解析、表示に反映できるようにした。

設計の参考として、VC6のおまけについてるhttpサーバプログラムを読んでるんだけど、URLをパスに変換する時、返還前と変換後のパスの長さを比べている記述があって、意味が分からずしばらく悩んだ。

グルグルしながら色々調べて、「Windowsパス名の落とし穴」なんてのを見つけてようやく納得。

WEB表示用ディレクトリ+URL名をファイル名として単純に処理すると、表示用ディレクトリ以外の意図しないファイルが読み込めるようになっちゃうのか。ちゃんと対策を入れないと~。

VBのWebBrowserControlが面白そう

10日でおぼえるVisual Basic6.0入門教室

VBのWebBrowserControlって、オブジェクトとして色々操作できるのね。単に表示しか出来ないのかと思ってたよ。これなら色々遊べそうだな(にやり

Today's Bug

Yo! Ho! Everybody! What’s up today?今日は俺様の COOOOL で MARVELOUS な bug を報告しちゃうぜ! yo chki now.

void hoge() {
    a.WORD = *(unsigned long *)BUS_ADDRESS & 0xFFFF ;
}

32bitでバスリードして、下16bitマスクかけて、16bit のレジスタに入れたかったんだ。だけど、コンパイルしたら最適化の結果、見事に16bitリードにされてました OTZ

こういう時は、こうすると良いみたい。

void hoge() {
    unsigned long data_tmp ;

    data_tmp = *(unsigned long *)BUS_ADDRESS ;
    a.WORD = data_tmp & 0xFFFF ;
}

他人のソース解析中

遂に他人のソース解析の領域まで来たわけですが。プロトタイプ宣言がなかったり、引数の数が足りなかったり、引数の型が滅茶苦茶だったりで目も当てられません。HEW君は良くこんなのを文句も言わずにコンパイルするね。

限界突破?VBがコントロール大過ぎで落ちた

10日でおぼえるVisual Basic6.0入門教室

ふんふーんと調子よく作業していたら、VBにコントロールの数が一杯だと告げられ「???」と混乱。

取りあえず一旦終了しようと無意識にセーブ。立ち上げなおすとロード出来ないと言われてゲンナリ。エラーログを見ながらフォームファイルのおかしな所を修正して何とかロード成功。やぁ一安心だと思ったら、タブコントロールが丸ごと消えてる orz

幸い数十分前にsyncしておいたデータがあったので事なきを得たけど、危ないところだったヨ

VBで0x00から0xFFの文字列を作り出す

ん~、VBで0x00から0xFFの文字列を作り出すスマートな方法がわからん。Cだとこんな感じのをやりたい。

for(i = 0; i < 0x100; i++)
    spirntf(Str,%02X,i) ;

結局こんな感じにしてるけど、イマイチだ

For i = 0 To &HFF
    Str = Right("0" + Hex(i), 2)
Next

Hexstr = "0123456789abcdef"
For i = 0 to &hF
For j = 0 to &hF
Str = Mid( Hexstr, i, 1 ) + Mid( Hexstr, j, 1 )
Next j
Next i

追記:それだと、やりたい事がパッとわからない気がします。なんかこう、ソースから直感的に意味が分かるような書き方にしたいんですよぅ。

実習C言語、読了

実習C言語 (スマート・スタディ・シリーズ)

読了。基本的な文法、配列、ポインタぐらいは頭では理解できたと思う。あとは実際にソフトを作ってみて、どこまで応用できるかだね。

C言語プログラマ必携かも?フリーな解析ツール「C言語関数ツリー」が良い感じ

C言語の解析用に、簡単に使えてフリーなツールを探していたときに「C言語関数ツリー」を見つけました。

Vectorに掲載されているソフト紹介文を引用します。

これはかなりおすすめです。C言語プログラマ必携!!!
DOS汎用。Windows3.1/95/98/NT/2000でも動作可。

C言語のソースを読み込んで、その関数の構成をツリー状にして画面に出力します。
タグジャンプも可能。ソース解析、ドキュメント作成に最適です。

使用方法 C>functree *.c
FUNCTREE.C 218 <0>main() メイン・ルーチン
FUNCTREE.C 160 ├<1>get_home_directory() コマンドラインから、自分のディレクトリを得る
FUNCTREE.C 135 │ └<2>usage() 使用法を表示(エスケープシーケンス未対応用)
TRE_CNFG.C 82 ├<1>read_configration() 書式の読み込み
TRE_CNFG.C 43 │ └<2>get_string() エスケープ文字の変換
FUNCTREE.C 70 ├<1>read_exclude_function_table() Cの関数、除外関数を読み込む
STRLIST.C 29 │ └<2>StrList_add() 新しい文字列の追加。(いちばん最後に追加される)
FUNCTREE.C 121 │ └<3>Alloc() メモリ・アロケーション

引用元:http://www.vector.co.jp/soft/dos/prog/se174432.html

ためしに、今回のソースを投げ入れたら、きれいにツリーを作ってくれて感激。

コメントが上手く読み込まれないけど、いいもの見つけたって感じです。

プログラマー's研究所/C言語関数ツリープログラマー’s研究所/C言語関数ツリー [公式]

TdfEditor for Windows、DLL同梱版を公開

ようやくですが、DLL 同梱版を公開します。バージョンもあがってちょっとだけバグフィックスしたよ。

変更点は以下の通りです。

  • FTPモードで存在しないディレクトリを作成するのに失敗していた不具合を修正。
  • コード最適化。ちょっとだけ実行ファイルが小さくなりました。
  • DLL同梱版も公開するようにした。

DLL非同梱版はもうちょっと待っててね。今ソフトウェア公開用のページを作成中なので、完成したらおいておきます。

今日の人気記事