首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DllImport user32 vs user32.dll

DllImport user32 vs user32.dll
EN

Stack Overflow用户
提问于 2012-03-06 06:23:58
回答 2查看 6.2K关注 0票数 7

这里DllImport的用法有什么不同?具体来说,"user32“是指"user32.dll",还是指"user32.lib”或其他什么?

代码语言:javascript
复制
[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。

如果它们是相同的,我可以重写它以使其更一致,但如果不是,我不想用它有一堆问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-06 11:20:35

在这个例子中,没有区别。.dll扩展名将自动附加到"user32"以创建"user32.dll"。然而,情况并不总是如此。如果库文件名包含句点,则不会自动附加.dll扩展名。

下面是一些例子:

[DllImport("user32")] -->解析User32.dll。对,是这样。

[DllImport("user32.dll")] -->解析User32.dll。对,是这样。

[DllImport("mylib.version5")] -->解析"mylib.version5“。不正确的

[DllImport("mylib.version5.dll")] -->解析"mylib.version5.dll“。对,是这样。

票数 13
EN

Stack Overflow用户

发布于 2012-03-06 06:38:46

在Windows上没有区别,如果省略扩展,导入将成功执行。当使用<dllmap>配置部分运行Mono时,通常需要省略扩展,其中P/Invoke运行时将查找别名。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9574974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档