VC动态调用DLL的调试方法
来源:互联网 发布:手机如何撤销淘宝投诉 编辑:程序博客网 时间:2024/05/18 08:18
原文:http://blog.csdn.net/zhoubl668/article/details/3732238
很多初学DLL和COM编程的人都为DLL的调试方法发愁。我结合自己学习COM的体验,总结DLL程序的调试如下。
1.测试程序有源码。
2.测试程序无源码,只有可执行(exe)文件。
3.对DLLRegisterServer函数和DLLUnregisterServer函数的调试。
一:测试程序有源码
对于这种情况,我们可将测试程序的工程(dllCall)和dll程序的工程(dllTest)建立在同一个工作区下。
编译链接dllCall文件,确保生成了dllCall.exe,然后我们将dllTest设置为活动工程。因dllTest需要有测试程序,我们可按如下方法设置。
选择Project->Settings->Debug->Executable for Debug session:
在其文本框中填入dllCall.exe的路径。
按以上操作设置好后,编译,链接dllTest没错后,开始调试。
在dllCall中设置断点。
在dllTest中设置断点。
断点设置好后,在确保dllTest为活动工程的前提下,开始调试,程序将在断点处停下。
二:测试程序无源码
如果测试程序无源码,则不能将测试程序和dll程序联合调试,但可以只调试dll文件。在这种情况下,dllCall.exe的路径要填对,确定dllCall.exe的确调用了dllTest工程下的dllTest.dll文件。
三:对DLLRegisterServer函数和DLLUnregisterServer函数的调试
编程com程序,一般将com的注册和卸载集成在dll文件中,故在dll文件中会实现DllRegisterServer函数和DllUnregisterServer函数,然后通过windows自带的regsvr32.exe命令来实现dll的安装和卸载。
Regsvr32.exe dllTest.dll安装dllTest.dll
Regsvr32.exe /u dllTest.dll卸载dllTest.dll
从上可看出,调试程序为Regsvr32.exe,它带有参数,这是和上述两种情况不同的地方,其余的过程基本相似。
先看看DLLRegisterServer的调试,路径设置。
然后在DllRegisterServer处设置断点。
DllUnregisterServer调试。
在DllUnregisterServer出设置断点
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
方法1: 对DLL的工程DEBUG,
在DLL工程的Project Setting->Debug->Executable for debug session中加入你的.exe的路径和名字。
可以在dll中设置断点,.exe程序必须要调用dll中函数。
方法2: 有个更好的方法:(我也没试过)在settings/debug中category选additional dlls,
然后将你要调试的dll加进来。这样,即使你用loadlibrary动态加载dll,也可以加断点了。
方法3: 直接运行DLL就行了,那会让你指定调试程序,你把你准备调用它的程序的exe文件指给它,断点运行就可以了.
下面进入正题:你把调用dll的.exe文件拷到dll的debug目录下,就可以调试断点了,进行调试了.我认为这句话是关键。
0
上一篇:在C++中调用DLL中的函数
下一篇:C++技巧之名字空间namespace
相关热门文章
- 利用进程信息追查内存泄漏...
- 摄像头avcodec_encode_video2...
- WPF Image赋值的两种方法...
- 一个由网络闪断导致的CICS交易...
- Linux 下系统调用的三种方法...
- test123
- 编写安全代码——小心有符号数...
- 使用openssl api进行加密解密...
- 一段自己打印自己的c程序...
- sql relay的c++接口
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议
0 0
- VC动态调用DLL的调试方法
- VC动态调用DLL的调试方法
- VC++调用dll的方法
- VC动态调用DLL
- VC动态调用DLL
- BCB2009 动态调用VC生成的DLL
- VC调试DLL方法
- VC++中的Dll调用及Dll的调试
- VC++中的Dll调用及Dll的调试
- vc 6.0调试dll的方法
- VC 调用DLL文件的方法
- vc调用dll的两种方法
- VC 调用DLL文件的方法
- VC中调用dll类的方法
- vc++ 调用外部dll的方法
- VC中动态加载DLL的方法
- VC 动态调用DLL接口
- vc调用动态链接库DLL和静态链接库Lib的四种方法
- Linux在防火墙中开放SVN端口
- 使用现有的基于caffe训练好的imagenet model进行图片分类
- bash: chkconfig: command not found
- VS编译debug模式静态库(lib)的结尾_d修改
- 在C++中调用DLL中的函数
- VC动态调用DLL的调试方法
- C++技巧之名字空间namespace
- C/C++联合(Union)浅谈
- C++拷贝构造函数(深拷贝,浅拷贝)
- Microsoft Office 2007 SP1 简体中文龙卷风版
- 同步和异步的区别
- VC++数据类型
- C++ Template 中的typename、class关键字区别
- C++类模板的成员函数模板写法
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
富贵竹的养殖方法
富贵竹开花图片
富贵竹养几根好
水养富贵竹怎么养
富贵竹的图片
富贵竹花语
富贵竹开花是好兆头吗
富贵竹的养殖方法和注意事项
富贵竹放在卧室好吗
富贵竹能放卧室吗
富贵竹养殖
富贵竹怎么土养
富贵竹繁殖方法
富贵竹能长多高
富贵竹能土养吗
水养富贵竹
富贵竹怎么养容易长根
水养富贵竹修剪图解
富贵竹生根后怎么养
如何养富贵竹
富贵竹长高了怎么修剪
3根富贵竹的寓意
富贵竹批发市场
富贵竹土养方法
富贵竹价格
富贵竹禁忌摆放位置
养富贵竹水里放什么
富贵竹多少钱
如何养殖富贵竹
如何养好富贵竹
富贵竹怎样繁殖
富贵竹营养液
富贵竹要怎么养
富贵竹怎么样养
富贵竹怎么养活
红色富贵竹
富贵竹有几种
富贵竹怎么摆放
富贵竹如何养
富贵竹有什么好处
富贵竹养法