相关文章推荐
骑白马的沙滩裤  ·  【混合编程】VB6与VC++的合体编程(不使 ...·  1 月前    · 
没读研的火柴  ·  制作vb dll的总结 - ElNinoT ·  1 月前    · 
不爱学习的生姜  ·  gms ...·  1 月前    · 
开朗的键盘  ·  Bob Dylan Awarded ...·  1 周前    · 
飞翔的领带  ·  Hoover Sensory TS ...·  2 月前    · 
气宇轩昂的铅笔  ·  Building a Web Site ...·  3 月前    · 
近视的口罩  ·  JS,SQL,Java这些语言是否区分大小写 ...·  3 月前    · 
安静的皮蛋  ·  聚类算法小结 - 静悟生慧 - 博客园·  1 年前    · 
Code  ›  .Net,Dll扫盲篇,如何在VS中调试已经编译好的dll?开发者社区
编译程序 程序调试 dll文件
https://cloud.tencent.com/developer/article/1177143
道上混的消炎药
2 年前
作者头像
小曾看世界
0 篇文章

.Net,Dll扫盲篇,如何在VS中调试已经编译好的dll?

前往专栏
腾讯云
备案 控制台
开发者社区
学习
实践
活动
专区
工具
TVP
文章/答案/技术大牛
写文章
社区首页 > 专栏 > 小曾 > 正文

.Net,Dll扫盲篇,如何在VS中调试已经编译好的dll?

发布 于 2018-08-03 16:07:05
2.2K 0
举报

什么是Dll?

DLL 是一个包含可由多个程序同时使用的代码和数据的库。
例如,在 Windows 操作系统中,Comdlg32 DLL 执行与对话框有关的常见函数。因此,每个程序都可以使用该Dll中包含的功能来实现“打开”对话框。这有助于促进代码重用和内存的有效使用。
通过使用 DLL,程序可以实现模块化,由相对独立的组件组成。
通俗来讲,一个项目由多个模块组成。可以在运行时将各个模块加载到主程序中(如果安装了相应模块)。因为模块是彼此独立的,所以程序的加载速度更快,而且模块只在相应的功能被请求时才加载,而更新的话,就只需替换掉当前的DLL就行了.

如何制作Dll?

在以.net的开发为例,在当前编译环境下,只需要对当前想要制作成dll的项目右键重新生成下,然后在该项目对应的文件夹下面找到debug文件夹,里面就会有一个与当前项目名称一样的后缀为dll的文件。
Dll怎么用?
首先先在项目中引用该dll,然后在用到dll的地方using一下,即可调用其中的类与方法。因为是dll,所以你F12进去一般都是这样的:
可以看到该类既不是抽象类也没有继承任何接口和类,但是方法体却没有实现,而最上面 有写xx程序集之类。
你可以通过vs的对象浏览器看看里面都是啥结构,但是你是看不到方法里面的代码的,也无法调试。

怎么查看dll的代码?

你想了解这些dll中的代码实现,但是你看不到。但是,你想到的,前人早想到了。那么我们换个说法,之所以你看不到被编译好的dll中的代码,那是因为vs编译器本身不带这个功能。
那么,我们找一款工具来辅助我们来看看这个dll中的代码。
这个实现过程,叫  反编译。
那么,自然,我们要用的就是 反编译软件。
当下知名的反编译软件有 Il spy,.NET Reflector
这两个软件我比较喜欢用IL SPY,因为网上有中文版的。
放图:
如果你想查看特定的dll的话,可以点击文件选项卡,然后点击打开,然后找到dll路径就可以了(.NET Reflector也一样)。
 
推荐文章
骑白马的沙滩裤  ·  【混合编程】VB6与VC++的合体编程(不使用DLL) - 技术宅的结界 - Powered by Discuz!
1 月前
没读研的火柴  ·  制作vb dll的总结 - ElNinoT
1 月前
不爱学习的生姜  ·  gms DigitalMicrograph.exe加载msvcp71.dll文件丢失处理办法
1 月前
开朗的键盘  ·  Bob Dylan Awarded Honorary Doctorate from Berklee College of Music | Berklee
1 周前
飞翔的领带  ·  Hoover Sensory TS 2351 – Findust
2 月前
气宇轩昂的铅笔  ·  Building a Web Site for 360 Images with Django, Bootstrap, A-Frame - 360 Media - Camera 360 Develope
3 月前
近视的口罩  ·  JS,SQL,Java这些语言是否区分大小写_不区分大小写的编程语言-CSDN博客
3 月前
安静的皮蛋  ·  聚类算法小结 - 静悟生慧 - 博客园
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号