【发布时间】:2012-01-26 11:51:04
【问题描述】:
这个question 启发了我提出以下问题。即使您不调用/使用该方法,DllImport 属性是否总是加载特定的 DLL。
例如当你有以下代码时:
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();
}
}
}
现在,当应用程序启动时,AllocConsole 将永远不会被触发,但会加载 dll 吗?
【问题讨论】:
-
如果你把它改成
[DllImport("kernel99.dll")]会怎么样?假设您当然没有其中之一。如果没有错误,我猜它没有尝试加载它。