我想知道什么是最重要的、声明最多的引用,为什么我们仍然需要使用DllImport?我说的是C#。
发布于 2011-03-11 21:17:06
从MDSN documentation
在托管应用程序中重用现有的非托管代码时,DllImport属性非常有用。例如,托管应用程序可能需要调用非托管WIN32应用编程接口。
基本上,在编写.NET应用程序时,如果库没有托管包装器(它是用非托管代码编写的),则需要使用DllImport与其进行互操作。否则,您可以使用using语句引用托管库,就像通常使用任何基类库一样。
发布于 2011-03-11 21:16:33
它在需要调用非托管代码时使用。
例如,您可能需要调用一个windows API函数,因此您可以这样声明:
[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/
发布于 2011-03-11 21:17:07
using指令包含来自引用的托管程序集的命名空间。
DllImport用于从非托管DLL导入方法。
https://stackoverflow.com/questions/5273303
复制相似问题