2010-01-01から1年間の記事一覧

マルチスレッドと落ちるウィンドウ

複数のスレッド内でウィンドウを作りメッセージループを回すということを何回も繰り返すと落ちる現象に遭遇しました。最初はスレッド関連か呼び出し規約など色々疑いましたが結局の原因はAT○Kでした。 デバッガの呼び出し履歴 WindowProc -> DefWindowProc -…

std::mapのkeyをスライドしたい

何年も前にstd::mapに格納されているkey群を指定量だけ一気にずらしたいと思い、slidable_mapとでも呼べるデータ構造を考えました。つまり格納されているkeyが1,5,8だとしてそれぞれを+2だけずらし3,7,10としたいわけです。愚直に個々のkeyを修正すればコス…

RGBからCMYKへ変換するには

RGBとCMYKカラーの変換には簡単な変換式はありませんし、完全に可逆の変換が出来るわけでもありません。また用途に応じて変換方法も違ってきます。 まずは適切なiccプロファイル(RGB,CMYK)を用意します。CMYKのプロファイルとしては日本で印刷するなら ( Jap…

STL シーケンスから最後の要素を探す

C++

最初の要素を検索するならstd::findが有りますが、後ろから検索するアルゴリズムは標準には有りません。そこでreverse_iteratorを使用してみます。 std::vector<int> v; v.push_back(10); v.push_back(20); std::vector<int>::reverse_iterator ritr; if ((ritr = std:</int></int>…