2009年11月アーカイブ

VB6.0時代に、どうしてもできないことがあった。それは、ネイティブDLLの遅延バインディング。

VBにはAPIを呼ぶためのDeclare宣言があったけど、呼び出すDLLはコーディングの段階で固定されてしまう。つまり、ビルドが完了した時点で、呼び出すDLLが決まってしまうということ。当然、アプリケーションを動かしている中で変更することはできない。一般に「動的な呼び出し」が出来ないのである。

.NET 2.0になって、ようやくその枷(かせ)が外れたのだけど、どのサンプルを見ても、LoadLibraryやらFreeLibraryやら、いろいろと準備と後始末に忙しい。

そこで、.NETによるネイティブDLLの遅延バインディングはどこまで簡略化できるのか。

 

試してみた。

.NET Framework 2.0 には、HTTPSに代表されるSSL(Secure Socket Layer)暗号化通信を行うためのストリーム「SslStream」が用意されている。

でも実用例があまりネットで公開されていないので、ホスト名だけでHTTPS用のSslStreamを生成するクラスを作ってみた。

構造体とバイト配列間のコピーはいくつかサンプルが見つかったのだけど、サイズが同じで異なる構造体間のコピー、というのがなかったので考えてみた。

こんなのはどうだろうか?

例外一覧

| トラックバック(0)

VB や C# でアプリを作っているときに手が止まる場面のひとつに、例外の発生処理がある。

単に System.Exception で投げるよりも、例外内容を示す定義済み Exception があればそっちを使いたい。でも、Exception クラスは一般クラスに混じっているので探しづらい。

TreeViewのSortedプロパティは、MSDNにメンバーとしてちゃんと掲載されているのに、プロパティウィンドウやインテリセンスには出てこない。

まぁ、手書きで書けばちゃんとコンパイルも通るわけだが・・・

(´・ω・`) なぜ隠す??

Windows7 続き

| トラックバック(0)


前々回のエントリでWindows7に移行する記事を書いた。

その後、どうなったか 結果報告。