[请教]如何方便的调试DLL?

wwfttelne 2003-12-12 11:16:02
我现在正在学习DLL,COM方面的知识。
现在的问题是,我在测试各种语句时,总是不断的改源代码,所以不断的重新编译。
这个时候,我为了测试DLL,就需要不断的拷贝粘贴.DLL,.LIB文件。
时间成了觉得很麻烦,谁知道在VC6.0里面,如何设置可以方便一些?
下面是我的两个工程的文件夹结构。
TestDLL--->debug--->TestDLL.dll,TestDLL.lib
TestDLLEXE--->debug--->TestDLLEXE.exe
我现在经常做的一件事情就是把TestDLL.dll,TestDLL.lib拷贝到TestDLLEXE.exe所在的文件夹中。
那位大侠可以帮帮我!谢谢先!
...全文
70 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zming 2003-12-13
  • 打赏
  • 举报
回复
bluebohe(薄荷)

你的方法是简洁,但值得商榷,原因如下:

Option-->Directions是VC++的全局环境设置,该全局设置不包含在相关工程文件中,
如果相关的工程文件交到其它机器的VC++环境中编译,还必须重新设置。

我推荐的方法,相关的环境设置是局部环境设置,将被包含在相关工程文件中,这样,
相关的工程文件移到其它机器的VC++环境中进行编译时,将不会再重新进行设置。

bluebohe 2003-12-12
  • 打赏
  • 举报
回复
建立目录 TestDLLEXE--->TestDLLEXE(放主工程源文件)
TestDLLEXE--->TestDLL (放.dll源文件)
TestDLLEXE--->inc (放公用.h文件,用到时#include "..\a.h")

设置工程:TestDLLEXE以及TestDLL输出目录为..\DEBUG(对应release版本为..\release)
设置库文件目录 Options中Directions目录中的Liberary files相应增加..\debug的目录

OK
bluebohe 2003-12-12
  • 打赏
  • 举报
回复
太烦了,我说一下吧
wwfttelne 2003-12-12
  • 打赏
  • 举报
回复
zmi
谢谢!
按照你的说法,我搞定了。
现在可以自由的测试DLL了。
zming 2003-12-12
  • 打赏
  • 举报
回复

1、在C盘下建一个目录,如:C:\bin

2、设置工程TestDLL

通过菜单项“Project”-->“Settings...”,
打开“Project Settings”对话框。在“Project Settings”对话框中设置如下内容:

(1) 设置工程输出

选择“Link”标签项,在“Category:”右边的下拉框中选择“General”,
在“Output file name:”下面的编辑框中输入:
   “C:\bin\TestDll.dll”。

(2) 设置工程编译完成后的操作

   选择“Post-build step”标签项,增加如下内容:
   “copy debug\TestDll.lib C:\bin\TestDll.lib”


3、设置工程TestDllEXE

通过菜单项“Project”-->“Settings...”,打开“Project Settings”对话框,
在“Project Settings”对话框中设置如下内容:

(1) 设置工程输出

选择“Link”标签项,在“Category:”右边的下拉框中选择“General”,
在“Output file name:”下面的编辑框中输入:
   “C:\bin\TestDLLEXE.exe”。

(2) 设置链接的LIB

   选择“Link”标签项,在“Category:”右边的下拉框中选择“Input”,
   在“Object/library Modules:”下面的编辑框中输入:“TestDll.lib”;
   在“Additional library path:”下面的编辑框中输入:“C:\bin”。

(3) 设置调试环境

    选择“Debug”标签项,在“Category:”右边的下拉框中选择“General”,
    在“Executable for debug session:”下面的编辑框中输入:
    “C:\bin\TestDLLEXE.exe”。

在“Working directory:”下面的编辑框中输入:
“C:\bin”



  


wwfttelne 2003-12-12
  • 打赏
  • 举报
回复
zjs

搞定lib问题简单,难得是搞定dll
wwfttelne 2003-12-12
  • 打赏
  • 举报
回复
fly 提出的建议不错,就是可能导致工程有点混乱。
zjsunjifu 2003-12-12
  • 打赏
  • 举报
回复
直接在project->setting 的link下的categroy ->input,在object/library module栏里输入对应.lib文件的完整路径即可.
flyelf 2003-12-12
  • 打赏
  • 举报
回复
把这两个工程放在一起,并且把dll和exe放在一个目录下
bluebohe 2003-12-12
  • 打赏
  • 举报
回复
建立目录 TestDLLEXE--->TestDLLEXE(放主工程源文件)
TestDLLEXE--->TestDLL (放.dll源文件)
TestDLLEXE--->inc (放公用.h文件,用到时#include "..\a.h")

设置工程:TestDLLEXE以及TestDLL输出目录为..\DEBUG(对应release版本为..\release)
设置库文件目录 Options中Directions目录中的Liberary files相应增加..\debug的目录
在你的DLL中Alt+F7中有一个C/C++中preprocessor definitions编辑框添加AAA_EXPORTS定义,然后在头文件类定义之前添加
#ifdef AAA_EXPORTS
#define AAA_API __declspec(dllexport)
#else
#define AAA_API __declspec(dllimport)
#endif
然后在你的类的声明前添加AAA_API ,就象上面一样,在主工程中包括这个头文件,主工程中在ALT+F7的LINK选项卡(应该是这个选项卡,我这没环境)添加该DLL的.LIB文件。OK


OK
wwfttelne 2003-12-12
  • 打赏
  • 举报
回复
告诉大家一个好消息,我终于写成一个干净的COM组件。
这里的干净是指从空工作区写起。
wwfttelne 2003-12-12
  • 打赏
  • 举报
回复
blue

不得不承认你的解决方案比较简洁!
我尝试了,确实可用。
谢谢!

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧