-- 作者:admin
-- 发布时间:11/9/2004 2:25:00 AM
-- C#使用技巧--调用DLL
发信人: wuxq (很想好好休息), 信区: DotNET 标 题: C#使用技巧--调用DLL 发信站: BBS 水木清华站 (Thu May 10 11:01:23 2001) 使用C#时不免用调用别的DLL,如WIN32的API和自己以前做的DLL, 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文档 -- ※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.172.127] 上一篇 返回上一页 回到目录 回到页首 下一篇
|