本文在口头传授的基础上加以整理归纳的,所以用词必有不够专业精到之处,有些逻辑叙述未必精确,望大家多提宝贵意见!在沟通的基础上完善本文!
问题的提出:为什么有的dll要注册后才能使用,有的不需要?什么叫托管dll?
传统的C/C++语言最大的特点在于能够直接对硬件进行操作,比方说让电脑发出声音,可是这存在一个比较危险的操作,就是可以对内存地址进行操作,这样做是非常危险的。但有时我们不得不面临对系统进行操作的需求,为了避免这种危险,.net框架就推出一种机制,.net语言,如C#,VB.net,就没有直接对内存操作的权限,但是可以调用C/C++或其他类型语言的dll,来对内存进行操作,通过注册非.net语言编写的 dll,生成.net框架内的托管dll,就可以直接调用dll提供的接口来对系统进行操作了。
相比较而言,用.net语言开发的dll则使用起来不需要注册,也不会生成托管dll。
在使用.net语言开发的dll时有两种情况,一种是以类为主不含控件的dll,一种是含控件的dll,添加时要稍作区分:添加第一类的dll时,需要在右侧的解决方案资源管理器列表的项目名称上右击->添加引用->浏览->要引用的dll;添加第二类时,在右侧的工具栏里右击->选择项,如果是添加.net语言编写的dll,在.net framework组件页里选择浏览,然后添加dll;如果是添加非.net语言编写的dll,则在com组件页里选择浏览,然后添加dll。
感谢同事YUFA热心、耐心、细心的讲解,深入浅出地讲解让我一下感觉入了门,也消除了心里对dll的一大隐患!获得别人这么热心的帮助真让我感到十分幸福!
也更有学习的动力了!