vc++6.0环境下如何调试DLL程序
调试肯定在Debug模式中
由于DLL程序不能生成窗口等等原因不好调试,所以我们无法了解DLL程序的流程是怎么样的。下面简单介绍一个如何来调试DLL程序。
应该知道写DLL文件肯定是给某个应用程序使用的,如果没有程序用到它那它就没有存在的意义了。
既然知道DLL是给某个应用程序使用之后,那么如果应用程序开始运行了,在加载DLL后,必然会进入到DLL程序内部去,如果这个时候DLL程序中设了断点,而断点又是DLL程序运行必经之处,那么运行到这个地方,应该会停下来的。
那么调试是在应用程序中进行呢?还是DLL程序中进行呢?当然是DLL了 因为它就是我们调试的对象嘛。但必须要导入一个能够调用它的程序进来,通过应用程序的启动来达到调试的目的。
那么如何在DLL中设置应用程序呢?
很简单,打开VC 6.0 在vc里面打开要调试的DLL程序,点击菜单Project(中文版可能叫工程)->setting(设置) 可以看到一个对话框,左边Setting For要选Win32 Debug模式,Setting For下面是一个树形列表,显示的所有工程信息,选择一个你要调试的工程(不需要打开选择下面的.h,.cpp文件)
右边点击Debug主要设置三个地方:
Catagory:General
Executable for debug session:这个目录很重要,这里就是选择应用程序了(这个应用程序必须要用到这个DLL文件) 比如说 你的DLL文件目录在E盘,而你的应用程序在C:\Test\Test.exe这里,那么这个目录就必须填写C:\Test\Test.exe。
Wroking directory:就是填写工作的目录,这里填的应用程序的工作目录就是C:\Test ,就是包含应用程序的目录
这样设置好了以后,就可以开始调试啦,你在DLL中设置断点,然后点击调试,可能会出现询问的一个窗口,不要选择那个勾,直接OK就可以了。然后应用程序出现后,你就可以模拟各种情况,来观察DLL中的行为了。
还要加一些内容:按F5调试的时候怎么输入命令行参数?
int main (int argc, char *argv[]); 就是这个argv,怎么才能输入?
Project菜单中的“Settings…”,Debug选项卡,Program Arguments里边添写命令行参数。