2010年01月14日 [長年日記]
_ [PROGRAM] VCのメモリーリーク確認関係。
とりあえず、メモリーリーク検知コード
// --------------------------------------------------------------------------
/// @brief メモリーリーク検出用設定
// --------------------------------------------------------------------------
void DebugStart( void )
{
#ifdef _DEBUG
// Get current flag
int tmpFlag = _CrtSetDbgFlag( _CRTDBG_REPORT_FLAG );
// Turn on leak-checking bit
tmpFlag |= _CRTDBG_LEAK_CHECK_DF;
// Turn off CRT block checking bit
tmpFlag &= ~_CRTDBG_CHECK_CRT_DF;
// Set flag to the new value
_CrtSetDbgFlag( tmpFlag );
#endif
}
これで、プログラムの中でメモリー解放忘れなどを検知できます。
_ んで、
// メモリーステータタスの表示
_CrtMemState s1, s2, s3;
_CrtMemCheckpoint( &s1 );
// タグを追加
CHoge * lpHoge = new CHoge( lpMogogo );
SAFE_DELETE( lpHoge );
// 差分がある場合表示
_CrtMemCheckpoint( &s2 );
if ( _CrtMemDifference( &s3, &s1, &s2) )
{
_CrtMemDumpAllObjectsSince( &s1 );
// _CrtMemDumpStatistics( &s3 );
}
こんな感じでクラスの作成と解放を見て、メモリーリークしてるか調べられます。
最後に、
リーク結果で帰ってきた ID を使用して
// 止める _CrtSetBreakAlloc( 12318 );等として、newが呼ばれたタイミングで停止をかければ、何処で確保された者が残っているかが解るって感じです。
_ 本当は new のオーバーライド時に、 __LINE__ __FILE__ 等を引数で渡せれば便利なんだけど、今のところよくわかんないので、とりあえずまとめ。
2009年11月08日 [長年日記]
_ [PROGRAM][TRAC] 自宅サーバーのTRACにガンチャート入らないっ
自宅サーバーのTRACにガンチャートを入れてみたくて設定かけているんだけど、うまくいかないで居るの。
http://willbarton.com/code/tracgantt/
このページのTracGantt を入れようとしてるわけで、trac.ini に色々記述しつつやってるんだけど~っ。
きいーっ
2009年11月06日 あくしょんかめーん! [長年日記]
_ [PROGRAM] ActionScript解析日記。
こんばんわ、ActionScriptとAppleScriptとAdobeScriptと混乱して、時々とんでもない事を口走ってるサイダーです。
そのうち、PostScriptぐらいにまで進化すれば、明らかに脳内でバッグが進むと思うのですが、新しい脳みそ買った方がよさそうよね。
さて、なんとなくって訳でもなくActionScriptの解析をやっているんだけど、abcdump なる便利そうなツールを見つけたので、とりあえずメモ。
とは言え、Flx3 SDK をDLして使わないと駄目らしく、 .as の拡張子って何だろって調べたら、HSP が出てきたり、で、よく調べると Java のコンパイル前のソースコードらしく、全く意味不明な感じ...
なむさん。
2009年11月01日 [長年日記]
_ [PROGRAM] DirectShowとWebCamera
せっかくと言うか、間違ったというか、物欲に負けてwebCameraを買ってしまったので、DirectShow 関連のコードを書いてみようかなと思い立って始めて見ましたが。
まあ、面倒くさいね。
webに上がってるサンプルをつぎはぎしながら、カメラから取り込める動画サイズを取り出して、Dibを作ってそこにかき込み、そのあと画面に表示するまでは何とか作ったんだけど...
サンプルではWindowが勝手に開いてたのを消す方法を見つけるのが面倒そうだったり、コーディングする量が多かったり、取り込んだ画像フォーマットが何か調べるのが目茶苦茶面倒そうだったり( 総当たりで確認する為の何かが必要そうだ、どうせ扱う機械は決まってるから決めうちでやってやろうと思ったけど、それを探すのがめどそう...
16bitフォーマットでデータが入ってくるのがわかったけど、それだけじゃぁ駄目っぽくて、下位8bitに輝度が、上位8bitにたぶん色情報が入っているらしいと言う事だけが今わかってる範囲。
YUV422とか、そこら辺が怪しそうだけど、そのあたりを全部試してみる所存。
うーだりーっ。
でも、OpenCVは使わない俺へそまがりーっ
_ [PROGRAM] DirectShow と YUY2 と RGB と
YUY2 で来たデータをRGB に変換しようとしていたんだけど、なんだかうまくいかない。こう、よくよく見てみたら、明るい場所で白と黒の交互の線が出ているじゃない。 受け取ったデータを調べて、0xff 以上のデータがないことも確認して、それで、WORD で取って LOとHIで取っていた部分をBYTEで取るようにしたらあっさり解決。 tortoiseSVNで比較してみたら理由はよくわかりました。(*(lpSource + 1) & 0x0ff00) >> 8;とするべき場所を
((*lpSource + 1) & 0x0ff00) >> 8;って書いてました....
_ あ、あれ?こんな場所???????
_ アヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャヒャ
2009年10月29日 案外何とかなる物ね [長年日記]
_ [PROGRAM] Win32アプリケーションでコンソールに文字とか出したい時っ。
Win32アプリケーションで、コマンドラインから実行する機能をアプリケーションにつける場合、そういうAPIが有った~ってお話。AttachConsole AllocConsole FreeConsoleだいたい、上記APIを使えばできるらしい。 ただ、AttachConsole に関して言えば、WindowsXP より上でないと動かないらしいので、そこに関しては注意が必要って事らしい。
_ 後、実行後、コマンドプロンプトの画面に戻らないと言うか、黒画面で停止する感じ? うまく言えないけど、リターンキーを押さないと Hoge> が表示されない状態になるんだけど、これってどうやって対処すればいいんだろかなぁ...
2009年10月14日 日が変わった日記 [長年日記]
_ [SWF][PROGRAM]今日からはswfフォーマットのチェックとかしたよ。
まず一番はじめに、Flash SWF フォーマットのページを見て、何となく概要をつかんだ後、英語のswf format の PDF を見ながらやっていたんだけど、いまいち訳がわからなくなってみたり。
リトルエンディアンって、一般的なIntelCPU の方式だとか思っていたんだけど、WORD 型でそのまま取ろうとしたら取れなくて、上位と下位を入れ替えたら正しい値が帰ってきたりして、もう、脳みそバーン状態。
どこかのページで、リトルビックエンディアンとか言う言葉を見たり、なんだよ?リトルビックプラネットがどうしたって!?とか思った訳だけど、案外幻覚を見たのかも知れないね、wikiだと混合の場合ミドルエンディアンって言うらしいし....
とりあえず、内部データの解析の入り口は出来たけど、After Effect からswfを書き出すと、ベクトルデータをラスタライズするって不思議な単語が見えてきたり.....
これっていったいどういう意味なんだろう? って言うか、swfってベクトルデータ扱えない... なんて事は無いはずだし、気になって仕方ないわけで、大混乱です。