首页 > 开发 > 综合 > 正文

C#使用技巧--调用DLL

2024-07-21 02:22:08
字体:
来源:转载
供稿:网友
使用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文档 
上一篇:索引指示器

下一篇:使用C# Indexer

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表