【发布时间】:2012-10-17 16:03:13
【问题描述】:
我发现这句话说:
[ DllImport( "winspool.drv",CharSet=CharSet.Unicode,ExactSpelling=false, CallingConvention=CallingConvention.StdCall )]
public static extern long OpenPrinter (string pPrinterName,ref IntPtr phPrinter, int pDefault);
我想知道为什么它没有导入winspool.dll,因为它是一个DLLImport命令,winspool.dll和winspool.drv有什么区别
【问题讨论】:
-
你为什么希望它导入一个你没有告诉它导入的文件?当您编码错误的文件名时,它无法猜测您的意思。
-
@AndrewBarber 我不认为这是一个很重要的问题——我认为它基本上可以归结为“DLLImport 真的可以导入不仅仅是 DLL 文件吗?”
-
@AndrasZoltan OP 似乎很困惑为什么 DllImport 在指定另一个文件(winspool.drv)时没有加载一个文件(名为 winspool.dll)。我同意您已经回答了问题的中心点,但我还想说明该属性仅加载您告诉它的文件 - 它不会尝试您没有特别命名的其他文件
-
@Andras Zoltan 确切地说,我的意思是既然文件 winspool.dll 存在,为什么我们不导入它而不是 winspool.drv
-
@Glolita Again:为什么您会希望它导入与您告诉它的文件不同的文件吗?