このquestionは私に次の質問を促しました。 DllImport属性は、メソッドを呼び出す/使用していないときでも、常に特定のDLLを読み込みます。DllImport属性は常にアンマネージDLLをロードしていますか
たとえば次のコードがある場合:アプリケーションがAllocConsole開始された今
static class Program {
[DllImport("kernel32.dll")]
static extern bool AllocConsole();
static void Main()
{
if (true)
{
//do some things, for example starting the service.
}
else
{
AllocConsole();
}
}
}
が解雇されることはありませんが、DLLがとにかくロードされますか?
MSDNとして
'[DllImport(" kernel99.dll ")]'に変更するとどうなりますか?もちろん、それらの1つを持っていないと仮定します。エラーがなければ、ロードしようとしなかったと思います。 – Blorgbeard