C#调用DLL很像VB,下面讨论的C#调用DLL的方式。 看看下面的例子,演示了怎么定义DLL函数接口 public class Utility { [DllImport("kernel32", EntryPoint=”CreateDirectory”, CallingConvention=CallingConvention.StdCall] public static extern bool Create (string name); [DllImport("User32"] EntryPoint=”MessageBox”, CallingConvention=CallingConvention.StdCall] public static extern int MsgBox (string msg); } class MyClass { public static int Main() { string myString; Console.Write("Enter your message: "); myString = Console.ReadLine(); return Utility.MsgBox(myString); } } 值得注意的是,缺省的调用规则(CallingConvention)是Stdcall,同Winapi,在 C++里是__stdcall的形式,函数入口(EntryPoint)缺省是同名,如CreateDirectory 的定义也可以为 [DllImport("kernel32")] static extern bool CreateDirectory(string name, SecurityAttributes sa); WIN32 API原型为 BOOL CreateDirectory( LPCTSTR lpPathName, // directory name LPSECURITY_ATTRIBUTES lpSecurityAttributes // SD ); 在调用WIN32 API时注意那些类型的转换,如结构(struct)、指针(pointer), 有关各种语言之间类型转换和DllImport属性的详细信息可以参考SDK文档 |
C#使用技巧--调用DLL
最新推荐文章于 2022-03-08 22:54:30 发布