1、调用格式 using System.Runtime.InteropServices; //引用此名称空间,简化后面的代码
2、可以使用字段进一步说明特性,用逗号隔开,如: [ DllImport( "kernel32", EntryPoint="GetVersionEx" )]
3、DllImportAttribute特性的筇瑰尬哇公共字段如下: 1、CallingConvention 指示向非托管实现传递菱诎逭幂方法参数时所用的 CallingConvention 值。 CallingConvention.Cdecl : 调用方清理堆栈。它使您能够调用具有 varargs 的函数。 CallingConvention.StdCall : 被调用方清理堆栈。它是从托管代码调用非托管函数的默认约定。
4、此字段被设置为 CharSet 值之一。如果 CharSet 字段设置为 Unicode,则所有字符串参数在传递到非托管实现之前都转换成 Unicode 字符。这还导致向DLL EntryPoint 的名称中追加字母“W”。
5、如果此字段设置为Ansi,则字符串将转湍恬擒舍换成ANSI字符串,同时向DLL EntryPoint 的名称中追加字母“A”。大多数 Win32 API 使用这种追加“W”或“A”的约定。如CharSet设置为Auto,则这种转换就是与平台有关的。
6、如果DLL中没有“MyMethod”,但存在“MyMethodA”,则返回“MyMethodA”。对于 Unicode 来说则正好相反。