【发布时间】:2012-03-23 09:59:35
【问题描述】:
这里 DllImport 的用法有什么区别?具体来说,“user32”只是表示“user32.dll”,还是表示“user32.lib”或其他什么?
[DllImport("user32")]
protected static extern int GetKeyboardState(byte[] pbKeyState);
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
protected static extern short GetKeyState(int vKey);
您可以忽略 CharSet 和 CallingConvention。
如果它们相同,我可以重写它以使其更加一致,但如果不是,我不想有一堆问题。
【问题讨论】:
-
相关文档为LoadLibrary。 如果字符串指定了一个不带路径的模块名称并且省略了文件扩展名,则该函数将默认库扩展名.dll 附加到模块名称。要防止函数将 .dll 附加到模块名称,请在模块名称字符串中包含一个尾随点字符 (.)。
标签: c# .net pinvoke dllimport user32