首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“使用”vs [DllImport]?

“使用”vs [DllImport]?
EN

Stack Overflow用户
提问于 2011-03-11 21:11:28
回答 6查看 8.7K关注 0票数 10

我想知道什么是最重要的、声明最多的引用,为什么我们仍然需要使用DllImport?我说的是C#。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-03-11 21:17:06

MDSN documentation

在托管应用程序中重用现有的非托管代码时,DllImport属性非常有用。例如,托管应用程序可能需要调用非托管WIN32应用编程接口。

基本上,在编写.NET应用程序时,如果库没有托管包装器(它是用非托管代码编写的),则需要使用DllImport与其进行互操作。否则,您可以使用using语句引用托管库,就像通常使用任何基类库一样。

票数 13
EN

Stack Overflow用户

发布于 2011-03-11 21:16:33

它在需要调用非托管代码时使用。

例如,您可能需要调用一个windows API函数,因此您可以这样声明:

代码语言:javascript
复制
[DllImport("Advapi32.dll", EntryPoint="GetUserName", ExactSpelling=false,
SetLastError=true)]
static extern bool GetUserName(
[MarshalAs(UnmanagedType.LPArray)] byte[] lpBuffer,
[MarshalAs(UnmanagedType.LPArray)] Int32[] nSize );

参考资料:http://www.csharphelp.com/2006/01/call-unmanaged-code-part-1-simple-dllimport/

票数 5
EN

Stack Overflow用户

发布于 2011-03-11 21:17:07

using指令包含来自引用的托管程序集的命名空间。

DllImport用于从非托管DLL导入方法。

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

https://stackoverflow.com/questions/5273303

复制
相关文章

相似问题

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