閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

dotNET

別プロセスの実行結果を逐次取得する

非同期でfindstrを実行する文字列検索ツールの作成:CodeZine別プロセス(findstr)の実効結果をリアルタイムにリストボックスに追加するためにデリゲートを使用していますが、これは大げさなような(例として使いやすかったから使っているだけでしょうが)。こ…

FxCop

コーディングスタイルをチェックしてくれるツール。デフォルトではマイクロソフトのガイドラインに沿っていない部分に対して警告を表示してくれるらしい。コーディング規約が形骸化している状態ではこのようなツールの効果も若干落ちるけれど、使用されてい…

C#でLoadLibraryを使用してアンマネージDLLを使用する

C#(.NET)でアンマネージDLLを使用するには、DllImport属性を使用するのが記述量も少なく、面倒なことを考えずに済むので一番楽だと思います。 [DllImport("user32.dll")] private static extern int MessageBox(IntPtr hWnd, string lpText, string lpCaptio…

Sandcastleでドキュメントを生成

Sandcastle(のCTP版ダウンロードページ) MSより提供されているドキュメント生成ツール。JavaDocとか、Doxygenとか、そういう感じの。Visual StudioはソースコードにXML形式でコメントを書いておくと、それを自動で読み取ってひとつのXMLファイルにまとめてく…

C# で COM インターフェイスを操作

アプリをテストするのに Ruby やら JScript やらを使って COM インターフェイスをあれこれしていたのですが、今の所テストは好きな言語でいいのだし、見た目にもちょっとインパクトがほしいなあと思って C# 使ってみました。いや、実際 EXE の中のウィンドウ…

C# で他に抑えておきたいところ

そういえば C# で興味を持っているものが他にもあったのだった。とりあえずメモだけしておこう。 MSBuild DI コンテナ NUnit (Unit Test) というか言語そのものもそろそろちゃんと理解しておいた方が良いような気もする。

EXE サーバできた

プロジェクトオプションを変更して、一度クラスライブラリを生成してからレジストリに登録されている値を比較してみたところ、クラスライブラリのほうは CodeBase というキーに生成した dll のパスが入っていて、どうもこれが exe の時に設定されていなかっ…

アプリケーションを ROT(Running Object Table) に登録する

.NET2.0 の場合、 IRunningTableObject を使用すれば良いようです。これは .NET2.0 から追加されたクラスで、それ以前の場合は UCOMIRunningTableObject になるようですが、使い方はたぶん、大体同じ。なので .NET1.0 でのサンプルでも、 UCOMxxx の UCOM を…