prog

最短路問題

最短路問題を解くアルゴリズムにダイクストラ法がある。http://www.me.sophia.ac.jp/or/lab/ishizuka/OC/spath_00.html既に解かれた問題に時間をかけないためにもアルゴリズムの勉強をもう少ししないといけない。

HousingMaps

http://www.housingmaps.com/Craigslist(http://www.craigslist.com/)にある不動産情報が、 GoogleMaps上でビジュアルに見られるというもの。CraigslistともGoogleとも関係ない開発者が作ったとか。緑のピンをクリックして「For Rent」などを選択すると 詳細…

今日からソフトの耐久テスト

メモリリークしてたらすぐに判るように、空きメモリ量をモニタするツールをWMIを使って書いてみる。 タスクマネージャのグラフではイマイチ判りにくいので。 ' memlog.vbs On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:…

大文字小文字を区別しないstd::set

管理中のファイルパスから重複しないリストを作成しなければならない。重複しないリストということで、std::setを使おうと思った。std::list みたいに。 しかし、これだと大文字小文字を別の文字列として区別してしまうため、Windowsのファイルシステムとは…

今日の失敗

WNDCLASSEXのlpszClassNameが他のWNDCLASSEXの名前とかぶっていて、指定の関数ポインタにメッセージが飛んでこなくなっていた。 気づくのににかなり時間がかかった。安易なコピペがバグを潜ませた。

引き続き動画再生

IVideoWindowとIVMRWindowlessControlの違い http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/directx9_c/directx/htm/usingwindowlessmodewiththevmr.asp IVideoWindowは子ウィンドウを作成してそこに動画を表示する…

動画再生

DrectShowを使った動画再生をコーディング中。 IGraphBuilder::RenderFile(wFile, NULL)が「0x8007007b」を返すので、エラー検索で確認すると「ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。 」とのこと。 調べてみたら、フ…

追記オープン

fopenの"a"オプションに対応するCreateFileのオプションが判らない。 Cのランタイムで設定できてWin32APIで指定できないという事はないと思うのだが…。そこでkodersで検索してみた。 http://www.koders.com/cpp/fidDD824E8216299DA6CB7DFB27C3D5BA54789AFC7B…

gonzui

gonzuiの公開は確か「いい夫婦の日」だから、11月22日で今日だ。早速チェックしに行こう。 …と思ったら、「いい肉の日」の勘違いでした。

非矩形ウィンドウ

透過率は指定できないが、ExtCreateRegionとSetWindowRgnで好きな形のWindowを作る事が出来る。SetWindowRgnは子Wndに対しても設定できる。ばんざーい。 ExtCreateRegionは複数の長方形(RECT)を指定してRegionを作成するAPI。ドット単位で指定すれば好きな形…

SHA-1ハッシュアルゴリズム

SHA-1が必要になったので、以下のサイトにあるソースをVC6でビルドした。 http://www21.ocn.ne.jp/~k-west/SSLandTLS/rfc3174-Ja.txt そのままではビルドできなかったので、以下のような記述を追加した。 // stdint.h #include <windows.h> #define uint32_t DWORD #def</windows.h>…

半透明ウィンドウの実装、…できず

UpdateLayeredWindowを使って実現するレイヤード ウィンドウはトップレベルのウィンドウにしか適応できない事が判明した。プロセス中のどのウィンドウでも透過できると勘違いして仕事で使う予定だったので、これから大変だ。ガックリorz。 概要: トップレベ…

マシンBで動いているプロセスに、マシンAから何らかのメッセージを伝える必要がでてきた。 メッセージ キューイング(Microsoft Message Queue、MSMQ)がそれを可能にするかもしれない。 http://www.microsoft.com/japan/msdn/net/upgrade/interactmessaque.as…

よく利用するジョブをスクリプトレットでコンポーネント化する

http://www.atmarkit.co.jp/fwin2k/win2ktips/475scriptlet/scriptlet.htmljsやvbsもCOMコンポーネントにする事が出来るらしい。ここではCOM化したスクリプトをスクリプトから呼ぶサンプルを示しているが、COMなのだからC++から呼ぶことも出来るだろう。何か…

base64エンコード・デコード

文字しか貼れない掲示板・日記などにバイナリデータを記録する方法として、base64でエンコード・デコードするcgiがあると便利だと思った。ファイルをbase64でエンコードするCGI(by Ruby)encode.html <html> <body> <form action="encode.cgi" method="POST" enctype="multipart/form-data"> <div> <input type="file" name="senddata" size="60"> </div> <input type="submit" value="Encode"> </form>…</body></html>

PEフォーマットについて

ソースをまったく編集せずにリビルドしても、生成されるexeファイルは異なる。 fc /b で比較してみると、0x0000E8 〜 0x0000EB が変化している。 http://hp.vector.co.jp/authors/VA015412/colum/pe.htm ↑ここによると、上記の領域はタイムスタンプだそうだ…

CriticalSectionのテスト

スレッドの排他で利用するCreticalSectionの感覚を掴むためテストコードを書いてみる。 “#if 0”の時は排他しないので、「T1 T1 T2 T1 T2」とT1とT2が交互に表示される。“#if 1”にし、CreticalSectionを有効にすると、100個T1を表示してから、T2の表示するよ…

MFCでchar*互換の可変長文字列

CArrayを可変長文字列のように使えることを確認。 deleteし忘れが無く便利、かも。 #include <afxtempl.h>CArray<char, char> text; text.SetSize(30); lstrcpy(&text[0], "Hello"); cout << &text[0] << endl;</char,></afxtempl.h>