C#调用托管DLL与非托管DLL

原创 2015年07月07日 10:18:22

DLL之前使用过几次,但是最近使用时,又出各种问题。最后弄到晚上十二点多了,看到网上一个创建DLL的图解教程,按上面的讲解,成功实现了C#调用自己创建的DLL。之所以耗了这么久时间,是因为我本想凭自己记忆实现DLL创建调用,但是各种问题随即产生。。。(不说了,割了)。。今天上午再次整理,觉得有必要记录。

C#调用DLL,有很多详尽的博客讲解。我此处只记录简单的两种,我在项目中只用到这两种。


一,C#调用托管类型Dll,实际中我是C#调用c#的DLL。其实这个很简单,就是添加引用就可以了。把dll添加到你所写的C#程序引用里。



二,C#调用非托管类代码,实际中我是C#调用C++ DLL..,还是直接上图吧。


1.创建C++ DLL

 网上有个图解教程说的很详细,可以照上面做,但是这个教程有个问题。创建DLL时,需要声明导出函数
   这里有两种方法声明导出函数:一种是通过使用__declspec(dllexport),添加到需要导出的函数前,进行声明,另外一种就是通过模块定义文件(Module-Definition File即.DEF)来进行声明。后面这个链接中的教程,并未说明这一单,他同时添加了两种做法。我试了,只使用其中一种就可以创建DLL,并且调用成功。http://444492018.blog.163.com/blog/static/11498932420122993358962/




创建成功后调用DLL.需要把dll相关文件拷贝到你需要调用的程序的bin目录下的debug(release)下。




也可以添加def模块文件,从而申明函数。也是可以的。





托管DLL和非托管DLL的区别

首先解释一下,托管DLL和非托管DLL的区别。狭义解释讲,托管DLL就在Dotnet环境生成的DLL文件。非托管DLL不是在Dotnet环境生成的DLL文件。      托管DLL文件,可以在D...

C# 中如何调用DLL文件(分两种情况,托管与非托管)

C# 中如何调用DLL文件? 2010-11-28 08:46yanghao717  分类:C#/.NET | 浏览 14452 次  C#编程 我在网上找了好久都没看明白,所以来这...

C#动态调用非托管DLL

尝试着在C#下调用以前Delphi写的一些DLL,基本实现动态调用,传入回调函数,及调用带结构数组指针作为参数的函数.     虽然DllImport可以方便的静态调用DLL的函数,但在.net2.0...

C#调用C++的dll两种方法(托管与非托管)

C#调用C++的方式分为两种:(1)非托管的方式进行调用;(2)采用托管的方式进行调用。 一、使用非托管类调用C++的dll。 1、首先在vs2010新建项目选择win32应用程序,并设置为DLL,如...

C#如何直接调用非托管代码

C#如何直接调用非托管代码 标签: c#apidllcallbackstringuser 2011-03-25 16:55 2736人阅读 评论(1) 收藏 举报  分类: DLL(5) ...

C#中调用非托管的DLL及参数传递 (一)

微软的.NET框架的优点之一是它提供了独立于语言的开发平台。你可以在VB、C++、C#等语言中编写一些类,而在其它语言中使用(源于.NET中使用了CLS),你甚至可以从另一种语言编写的类中继承。但是你...
  • F7ANTY
  • F7ANTY
  • 2012年02月23日 21:56
  • 896

C#调用非托管代码(转)

C#调用非托管代码(转) 在.net 编程环境中,系统的资源分为托管资源和非托管资源。   对于托管的资源的回收工作,是不需要人工干预回收的,而且你也无法干预他们的回收,所能够做的 只是了解...

使用平台调用(PInvoke)实现C#调用非托管C++代码

1.问题描述众所周知,不同的语言有不同的优势,如何让不同的语言在一个程序中“各司其职”、“分工协作”一直是一个人们想要达到的目标。有许多时候,我们需要用C#语言调用C++语言写成的代码:一方面,C#在...

托管DLL和非托管DLL的区别

首先解释一下,托管DLL和非托管DLL的区别。狭义解释讲,托管DLL就在Dotnet环境生成的DLL文件。非托管DLL不是在Dotnet环境生成的DLL文件。      托管DLL文件,可以在D...

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

http://www.cnblogs.com/liping13599168/archive/2011/03/31/2000320.html 在VS2010上使用C#调用非托管C++生成的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#调用托管DLL与非托管DLL
举报原因:
原因补充:

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