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

C# 中如何调用DLL文件?

2010-11-28 08:46 yanghao717    分类:C#/.NET  |  浏览 14452 次
  C# 编程
我在网上找了好久都没看明白,所以来这里请教高手们了,比如我将一个y.cs这个文件编译成y.dll放在 D:\ 下,y.dll文件中有一个print()方法。现在,我新建一个类x.cs,我要在这个类里调用y.dll,请问有几种方法?哪种最简单?请给我代码,谢谢!
还有一点,要将DLL文件放到bin目录里吗?如果不手动的复制过来,在打包成安装文件的时候它会自动的复制过来吗?新手,问题有点多,谢谢了!
11-28 09:13
楼主你的标题有误导人的嫌疑呀。呵呵
我帮你解释一下吧,你这里的调用dll用词不准
在。net平台上,调用dll文件有2种含义
1、调用托管dll,即你使用。net平台开发的dll,属于托管代码
2、调用非托管dll,即传统的dll,一般是C++,VB,DELPHI等等开发出来的,属于非托管代码。
从你的意思中看出来你现在是调用托管的dll,方法是 “在解决方案管理器” - “解决方案”(或项目) 中的任意地方, 右键“添加引用”,“浏览”,选择你需要调用的dll文件,确定即可,该dll会自动复制到bin目录,打包时也会自动复制到你发布的地方。
添加完了引用,现在如何调用呢?

如果有命名空间则引入命名空间,比如你的y。dll里面,是a命名空间,有一个b类,然后有一个无参数静态方法c
那么调用方法就是a.b.c(),跟你普通的使用类是一样的

然后是非托管dll
需要添加dll的名称,以及方法,也就是你所用到的dll的每个方法都需要添加一次,
[DllImport("msvcrt.dll")]    
public static extern int puts(string c);

你这点分数对不住我一个一个敲出来的字啊。

你可能感兴趣的:(C#学习)