关闭

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

1364人阅读 评论(0) 收藏 举报
分类:

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模块文件,从而申明函数。也是可以的。





0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5923次
    • 积分:177
    • 等级:
    • 排名:千里之外
    • 原创:11篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论