C#使用技巧--调用DLL

转载 2006年05月30日 16:48:00
 
使用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文档 

相关文章推荐

【转】把DLL文件打包进EXE的技巧(C#)

引用自:http://apps.hi.baidu.com/share/detail/18543708 用VS2005建立一个windows项目,取名test引用dll文件编写代码,正常引用dll里的类...

在VS2010上使用C#调用非托管C++生成的DLL文件(图文讲解)

在VS2010上使用C#调用非托管C++生成的DLL文件(图文讲解) 原文链接: http://www.cnblogs.com/liping13599168/archive/2011/03/31/...

使用VC++调用C#封装的DLL库实现Excel文件的操作(不用安装office软件环境)

使用VC++调用C#封装的DLL库实现Excel文件操作(不用安装office环境) 【注】这里只是简单实现了,更详细操作,还有待认真研究。 参考网页: http://support.micro...

使用C#生成dll文件并调用

有两种方法:     但是一般这个使用     打开VS2008,依次点击:菜单->文件->新建项目->项目类型visual C#(这里假设为该项目所取的名字是DllBuild)->类库(注意...
  • tzjly
  • tzjly
  • 2011-08-29 23:36
  • 11499

PB8调用使用C++与C#分别编写生成解压缩带有密码的zip压缩文件的动态链接库dll(部分内容转自互联网)

本文章编写的原因,是由于zlib无法解压缩由ICSharpCode.SharpZipLib.dll压缩的文件对作者的项目造成了困难,于是结合网上关于这方面的资料整理了这篇文章,希望对大家有所帮助,减少...

C#调用C++DLL 使用 德卡 读卡器 获取身份证信息

公司一个项目用到了德卡读卡器的设备,想在原有厂商给的C++ DLL的基础上再做一层封装,方便以后项目的使用,拿来DLL和接口文档就开干了。 在这里记录下,也分享给之后或许有需要的朋友。

在VS2010上使用C#调用非托管C++生成opencv代码的DLL文件

背景       在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第三方通讯组件的时候,通过C#来开发应用软件时,就需要利用DllImport特性进行方法调用。本篇文章将引导...

Unity3D中使用C#调用C++编写的DLL

Unity3D是一款非常优秀的游戏引擎,可以使用C#作为脚本语言进行编程。但是有的时候我们需要运行一些第三方的程序,例如C++实现的一些算法。我们需要将C++的代码以DLL的形式嵌入到Unity3D的...
  • zzlyw
  • zzlyw
  • 2017-01-20 20:16
  • 1444

C#使用技巧之调用JS脚本方法一

原文地址:http://www.cnblogs.com/xdpxyxy/archive/2013/06/11/3132097.html 有时候我们需要在C#中直接调用js方法,这是完全没问题的。当然...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)