VC++ DLL调式方法!

动态链接库DLL同静态Lib链接的区别在于:程序在编译成可执行文件时会把静态链接库中的程序拷进可执行文件中,所以Lib文件是不用同可执行 文件一同发布的。而链接到动态库DLL中时要通过一个Lib文件,Lib文件保存了函数或类在DLL中的入口地址,可执行文件中相应存放的也是函数地址, 所以DLLLib要同可执行文件一起发布。


1. VC
中支持的DLL种类:Non MFC DLL,Regular DLL,Exetension DLL

Non MFC DLL 
MFC动态链接库:不使用MFC类库结构,直接用C写,输出函数用标准C接口,能被非MFC程序调用

Regular DLL 
正则动态链接库:使用MFC编写,源文件中有继承自CWinApp的类,只能被MFC调用;正则Dll又分成静态连接到MFC的和动态链接到MFC的,在创建时会看到。

Extension DLL 
扩展动态链接库:实现从MFC继承下来的新类,输出MFC新子类,只能被MFC调用

2.实例如下:(VC++6.0)

在新建菜单中选择新建工程Win32 Dynamic Link Library,选择任何一种都可以,我以empty project为例,加入自己的函数MyFunction

 

 

编译后即可生成DLL文件和相应的Lib文件 

调用DLL的方法:显式调用 隐式调用

显调:用LoadLibraryAfxLoadLibrary显式调入Dll,再用GetProcAddress引入函数,最后用FreeLibraryAfxFreeLibrary(参数是AfxLoadLibrary返回的句柄)释放Dll

隐调:需要加入动态链接库Lib文件,不需要调用LoadLibrayrAfxLoadLibrary

在同一个工作区中,添加一个testdll工程,建立一个控制台的程序做的测试。。

测试代码如上所写。

 

设置testdll工程为当前活动工程,在mydll工程的函数里面,添加一个断点F9,

在调试时,就能进入到dll中单步跟踪了!

 

以上内容如有不懂,可以留言!中间如果有错欢迎大家指出来!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值