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

C++ による RC4(Arcfour) 暗号化

「ARCFOUR Algorithm」を C++ に移植したので紹介します. 以下に実装する関数 encrypt_rc4/decrypt_rc4 を用いればバイト列(std::vector)を暗号化/復号化できます. RC4 については「RC4」をご覧下さい. それでは以下に私の実装を示します.rc4.hpp #ifnd…

C++ による base64 エンコード/デコード

C++

C++ で base64 にエンコード/デコードするプログラムを作成したので紹介します.以下に実装する関数 encode_base64/decode_base64 を用いればバイト列(std::vector),プレインテキスト(std::string) 間でデータを変換できます. base64 については「Base64」…

ICU による文字コード変換ライブラリ

C++ で文字コードを変換するプログラムを作成したので紹介します.以下に実装する関数 encode を用いれば std::string, std::wstring 間で文字コードを変換できます. 文字コードの変換には代表的なライブラリとして libiconv と ICU とありますが,主にライ…

Oracle 11g を Linux にインストール

libstdc++6 がインストールされている環境(Ubuntu 10.04 等)には Oracle 11g がインストールできない. 回避方法は以下のリンク先の通り. Installing Oracle 11gR2 Enterprise Edition on Ubuntu 10.04 (Lucid Lynx)要約すると,下記のように libstdc++5 …

Windows サービスプログラムからユーザプログラムを実行する方法

今回は Windows の Service からプログラムを起動する方法を紹介します.Vista 以降ではサービスからユーザセッションにプログラムを実行するには CreateProcessWithLogonW を使用しますが,ここでは指定したプロセスのトークンを複製して CreateProcessAsUs…

Windows のエラー文字列の取得

今回は Windows の GetLastError() などが返すシステムエラーコードに対応するエラー文字列を返す関数を作成します. エラー文字列は例えば C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include などにある WinError.h というファイルに書かれているので…

eclipse で yamy の C-k が効かない問題

表題の通り,yamy では(というより窓使いの憂鬱の時代から)eclipse で C-k(kill-line) が機能しません. これは emacsedit.mayu の keyseq $EmacsEdit/kill-line = &EmacsEditKillLineFunc S-End C-X \ &Sync &EmacsEditKillLinePred((Delete), (Return Le…

Microsoft Visual C++ 2010 ディレクトリの設定方法

VC++ 2010 からはツール→オプション→プロジェクトおよびソリューション→VC++ ディレクトリ(GUI)でのグローバルなパスの設定が非推奨となりました. 代わりに,VC2010 では次のようにしてグローバルなパスを設定をします(VC++ ディレクトリが、オプションダ…

OpenCV 2.0.0a をランタイムライブラリをスタティックリンク(/MT, /MTd)でビルドする方法

OpenCV 2.0 では CMake を使って自分でビルドしますが,デフォルトではランタイムライブラリにダイナミックリンク(/MD, MDd)するようになっています. これをスタティックリンクに変更するには以下のようにします. CMake の設定で CMAKE_CXX_FLAGS_DEBUG と…

ublas::vector, ublas::matrix や OpenCV の CvMat を Visual Studio のデバッグウィンドウに表示する方法

boost.vector や boost.matrix, OpenCV の CvMat, IplImage, Vec, Mat は非常に便利ですが,一つ残念な事があります. それは Visual C++ の“自動変数”や“ローカル”,“ウォッチ”ウィンドウ等にベクトルや行列の要素ではなく,そのクラスのメンバ変数が表示さ…

GSL - GNU Scientific Library を Windows Microsoft Visual Studio で使う方法

今回は GSL と呼ばれるライブラリを Windows の VC++ 環境で使えるようにする方法について説明していこうと思います. 環境としては Windows Vista, XP, Visual C++ 2008, 2005 を想定しています.これ以外の環境では以下で説明する手順ではうまくいかない場…