奇怪?一个关于DLL调试技术的不解之迷?(给分88)

leemingsong 2000-08-17 06:02:00
本人最近在C++ Builder调试DLL 的过程中, 碰到奇怪的问题:Make DLL工程之后,运行主项目应用程序,刚刚在DLL 中修改过的代码好像根本还会执行到。 试着在DLL 处加断点,运行应用程序发现断点处为“X”,天,是不是的BCB的bug,我现在对它越来越没信心了。还是Build一下吧好像也不行。即使我用了Build All。退出再来问题还再!我没法活啦, 整一个下午就泡汤啦。。。请高人指点!(给分88)
...全文
183 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
FengSC 2000-08-30
  • 打赏
  • 举报
回复
对不起,这两天太忙了。
Dll,Lib,App目录分开没有关系,只要Dll的Final Output目录中的Dll是被App调用的Dll就行了。及在运行App时调用的Dll是Final Output目录中指定的Dll。
具体说明:(例)
建立一个Project Group名为Project All,增加已有的ProjectApp和ProjectDll,设置ProjectApp的Final Output目录为C:\AppFiles,设置ProjectDll的Final Output目录为C:\DllFiles,在Path中包括C:\DllFiles,而且你的动态连接库名称没有和其他的动态库重名。在运行App时Dll中的断点可以停下来。
Final Output目录是一个最终输出目录,不会有Obj文件。除非你的工程文件的最终输出是一个Obj文件。
leemingsong 2000-08-30
  • 打赏
  • 举报
回复
谢谢,估计你的办法准能行。我马上试一下。。。
很高兴,我又找到了另外的方法,就是将DLL工程设置RUN Parm及Host Application,发现这样也瞒好用。而且不用切换“活动”工程.
leemingsong 2000-08-28
  • 打赏
  • 举报
回复
很急啊,有没有人帮我一下!我在电脑旁守候...
leemingsong 2000-08-28
  • 打赏
  • 举报
回复
回FengSC网友,你说把“执行文件和动态连接库的Final Output目录设置在一起”可我们的项目开发是根据DLL,LIB,APP目录分开的, 那怎么办?
FengSC 2000-08-18
  • 打赏
  • 举报
回复
在菜单Project Options Directories/Conditionals 中有一个Final Output的路径,你如果设置它为..\或实际在..\中他会变成..\..\ ..\..\..\ 等等。最终达到你的根目录下。这样你的Dll不再运行工程的当前目录所以不能调试,只需要把执行文件和动态连接库的Final Output目录设置在一起就可以了。
qianxh 2000-08-17
  • 打赏
  • 举报
回复
我也多次碰到过这种问题,自己也不知道是怎么搞好的,不过可以试一下:
删除你改过程序的模块的obj文件,
删除你生成的dll和lib文件,
实在不行就删除以上文件后重新启动机器。

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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