Pebble Coding

プログラマーの作業メモ

.net framework 注意点

.net frameworkから古いタイプのDLL(アンマネージ)を呼ぶ際に ハマりまくったのでメモを残しておく。

とりあえず、覚えているものだけ。

あとは思い出したら追加するつもり。

1) GCHandle.Alloc はmanaged objectとしてのヒープメモリであり、 Pin指定してもアンマネージDLLに渡すとアドレスが変わってしまいすぐに落ちる。

Marshal.AllocHGlobalはアンマネージのヒープ領域に取られた メモリ断片であり、アンマネージのDLLに安全に渡せ、正常に動作する。