braintag

公開してしまう備忘録

C++

最適化の近道 プロファイラgprofのコールグラフを画像化して、コードのどこがボトルネックかをわかりやすくする

boostを多用して富豪的プログラミングしまくってたらさすがに遅すぎて、プロファイラで解析しようと 思ったのですが、boost使ってるとgprofの出力解読が困難なので、コールグラフを視覚化できないものかなと思ったら良いツールがあったので使ってみました。…

Windowsが、スリープする設定かどうかのチェック

日本語だとあまりいい情報がなかったのでメモ常時起動していなければならないアプリ作成中だけど、スリープや休止状態になってしまうと動作しない。下記のやり方でスリープや休止状態の設定を参照可能。Windows2000,XP,Vista,7で使用可能(VisualStudio2008 C…

MFCアプリケーションのユーザインタフェースをすべてJavascript(JQuery)におまかせしてしまう

wpfがある.NETと違って、MFCアプリを作っていると、ユーザインタフェースの見た目がしょぼくなりがち。 ちょっと凝ったことをしようとすると、すぐに複雑化してしまう。面倒なので、ユーザインタフェースをJavascriptにおまかせしてしまう方法。 (CDHtmlDial…

VisualStudio(VC9) でlog4cxxをつかう その3 VisualStudioのデバッグ出力へ

VisualStudio(VC9) でlog4cxxをつかう - braintag VisualStudio(VC9) でlog4cxxをつかう その2 - braintag これらの続きです。今回は、log4cxxの出力を、VisualStudioのデバッグ出力にも出したいと思います。 "log4j.properties"でどうにかする方法は見…

VisualStudio(VC9) でlog4cxxをつかう その2

VisualStudio(VC9) でlog4cxxをつかう - braintagの続き 付属のユニットテストを実行してみる "プロジェクトの追加"で、以下のプロジェクトを追加 C:\lib\log4cxx\apache-log4cxx-0.10.0\projects\testsuite.dswプロジェクトの依存にて、apr,apriconv,apru…

boost:asioを使って、ファイルをWebサーバにマルチパートでPOSTしてみる

boost:asioを使って、ファイルをWebサーバにPOSTしてみる かなり昔に書いたコードです。 HDDの整理中で、誤ってソースを削除しそうなのでここにメモ。制限 ファイルはカレントディレクトリ ポートは80固定 ドメインでなく、IPアドレス #include <iostream> #include <string> #</string></iostream>…

boost::asioで、sip messegeを送信する

boost::asioを使って、UDPの送受信をしてみる.受信待ちは5秒でタイムアウト本当は受信を先に動かしておかなければいけないんだろうな #include "StdAfx.h" #include <boost/asio.hpp> #include <boost/bind.hpp> #include <boost/lexical_cast.hpp> #include <boost/system/error_code.hpp> #include <Wincrypt.h> class datagram_handler { public: datagram_ha</wincrypt.h></boost/system/error_code.hpp></boost/lexical_cast.hpp></boost/bind.hpp></boost/asio.hpp>…

WindowsのADSIを使用して、LDAPサーバからアドレスデータを取得するコード

WindowsではADSI(winldap32.dll)というやつが用意されているので、これでLDAPのアクセスを行う。LDAPサーバに格納したinetOrgPersonから、全アドレスの電話番号、名前、グループ名称を取得するLDAPに格納されたデータは、base64化されていたり、文字コードが…

VisualStudio(VC9) でlog4cxxをつかう

いつもは自作のロギングクラスを使っているのだけれども、他人に使ってもらうときに、いちいち使い方をレクチャーするのも、どうせ読まずに質問されるのがオチのドキュメントを用意するのも面倒なので、やっぱりここはよくつかわれているようなライブラリを…

MFC Feature Pack スタッカブルなCMFCDesktopAlertWnd

MFC Feature PackのCMFCDesktopAlertWndでデスクトップの右下に、MSN Messanger的なポップアップアラートを出せることがわかった。MSN Messager的なポップアップアラート Win32,MFC このように、方法を結構調べてたんだけど、MS標準でできるとあって大喜び。…

google-perftoolsをVisual C++ 2005で使用し tcmallocを使ってみる

google-perftoolsをVCで使ってみようとググッたけど、VCでのサンプルがあまりないので困った。 exampleにはgccの例しかないし。 ダウンロードしたファイルに、README.windowsというのがあったので読んでみる。 VC++7,VC++8で使えるらしい。ただ、VC++7は__VA…

例外処理を作ってて不安になること

ときどき、例外処理なのか、通常のエラー処理なのか、いまいち自信がなくなる。 例外 処理が続行不可能な時 エラー フォロー、回復できる場合 という分類で作ってるんだけど、でも、例外を途中でキャッチして後始末してまたスローする、なんてコードを書いて…

MSN Messager的なポップアップアラート Win32,MFC

MSN Messagerを実行していると、 タスクバーの右下からニュルッっとでてくるポップアップアラート の実現方法をググッってみた。 CodeGuru: MSN Messenger like Tray Balloon コメントを読むと、タスクバーが下にあることが前提っぽい。 CodeGuru: A Class t…

Google C++スタイルガイド日本語訳

いままで、命名規約とかは、最初はMSのシステムハンガリアン(間違ったハンガリアン記法)を参考に、 次に、アプリケーションハンガリアン、と、いろんなスタイルを試してみたりしてきたけれども、どれも厳密には定義されてない。職場でも命名規則とかまで…

JsonCpp

C++でJSONを扱えるライブラリ。 http://jsoncpp.sourceforge.net/ Jsonデータを生成したい場合。 Json::Value root; root["A"]["C"]="ABC"; root["A"]["B"][static_cast<unsigned int>(0)]="A";//配列を埋め込みたい場合。castしないとエラーになる root["A"]["B"][1]="B";</unsigned>…

VC6でテンプレート

VC6にてテンプレート関数を作っていたところ、どうしてかerror C2893:になりコンパイルが通らない。 class a { template <class Array> int hoge(Array **array); }; template <class Array> int a::hoge(Array **array) { } いろいろ調べたところ、クラスの定義に関数を埋め込んでやら</class></class>…

window.hを呼びたくないがSleepしたい

なんか、window.hをインクルードするとコンパイルエラーする。 順番も間違っていないし、プリコンパイル済みヘッダも使用してない。でもSleepは使いたい。 いろいろ調べてみた。dllのインポートで使えるようになった。 extern "C" { __declspec(dllimport) v…

intelコンパイラ ICC 最適化メモ

intelのコンパイラについてのメモ(linux上)プロファイルからの最適化(PGO) コンパイルオプション prof_gen でコンパイルし、一度実行させるとプロファイラが出力される その後、 prof_use オプションにてリビルドをすると、そのプロファイラによる解析が始…