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

nkf を用いた文字コードの判別

オープンソースである nkf を借用して,テキストファイルの文字コードを簡単に判別できます。バージョン 2.0.9 以降の nkf のライセンスは zlib/libpng License です (極めて良心的なライセンスです)。対応文字コードは次の通りです。 Shift_JIS EUC-JP ISO-…

char は全ての Unicode 文字を表せる訳ではない

System.Char のドキュメント (*1) を参照して「Unicode 文字を表します。」と書いてあるのを鵜呑みにし,第 4 水準の「&#140062」(廴+囘,U+2231E) という字を char に入れようとして失敗した。 public class Program { public static void Main() { string…

SubItems[0] がなぜか埋まってる

ListViewItem の SubItems に Add でサブ項目を追加しようとすると,なぜか SubItems[0] に入れられない。 // 失敗例 ListViewItem item = new ListViewItem(); item.SubItems.Add("hoge"); item.SubItems.Add("piyo"); Console.WriteLine(item.SubItems[0].…

IME

IME の変換結果を勝手に書き換えてしまうようなアプリケーションを作ろうとして頓挫した途中結果。ImmSetCompositionString がどうしても動かない。 EXPORT LRESULT CALLBACK ImeHookProc( int nCode, WPARAM wParam, LPARAM lParam) { /* 前略 */ // if (pm…

C/C++ で作った DLL を C# で使う

この記事の目的は「アンマネージド DLL に親しむ」です。 C/C++ で DLL を作る C# で DLL 関数を呼び出す 文字列を扱う C/C++ で DLL を作る C で書かれた次の資産 arithmetic.c を,C# のプログラムから使いたいとします。 // arithmetic.c int add(int a, …

最小のプログラム

main(){}

new による多次元配列の動的作成

2 次元配列を作ろうとして double **arr = new double[size_x][size_y]; とか書いたらコンパイラに怒られたのでメモ。 1 次元配列 double *array = new double[size_x]; delete[] array; 2 次元配列 ダメな例 double **array = new double[size_x][size_y]; …

Windows のテキストエディタ

Windows に付属するテキストエディタは「メモ帳」だけではありません。MS-DOS 時代からの「MS-DOS Editor」と「EDLIN」が,現在の Windows でもサポートされています (32-bit 版のみ)。ここでは,これら 3 つのテキストエディタを紹介します。 メモ帳 Notepa…