cwnicol programming

プログラミング関連の投稿をすこしだけ

DllImport 属性

C#からCのDllを使用する際には、DllImport 属性を使う。


これは従来のリンクの用語でいう「明示的なリンク」の模様。
実行時の、さらに該当コード部に制御が移ると、メモリ上にロードされると。
Cの頃にやってたような明示的なリンク特有のめんどくさい手順は
必要ない。ただDllImport 属性を書くのみ。引数と戻り値のマーシャリング?は
必要となってくる。


DLL内の関数がひとつでも呼ばれれば、その時点でDLLが
メモリにロードされる。以降、EXE終了までロードされたまま。
EXE終了と同時に、メモリ開放される模様。


参考URL:
http://blogs.msdn.com/robgruen/archive/2004/11/12/256199.aspx


英語が理解できてるのか怪しいので、なんとも自信がないが。
しかも英語のソースでどこが信頼できるのかもあんまり知らないし。