别人的 exe 调用自己的 dll/lib -- 调用 .dll、.a、.lib 或 .bpl 的 exe 项目没有源程序或者不是 C++ Builder 项目
第 1/3 步:如果是调试 dll 项目,要保证 exe 文件调用的 dll 是项目直接生成的文件,以下三种方法之一:
• 最简单的方法:不要把 dll 文件复制出来到 exe 一起,而是要把 exe 复制到生成的 dll 文件夹;
• 这个也很简单:把 dll 项目设定为编译出来的 dll 文件就在 exe 文件一起,同一个文件夹里面;
• 这个有点困难:保证成功需要有些操作系统的经验,exe 文件无法复制出来,exe 所在的文件夹也无法编译输出,必须保证系统里面没有同名的 dll 文件被 exe 调用,把编译生成的 dll 的文件夹设到操作系统的 PATH 环境变量里面。
第 2/3 步:设定 dll / lib / a 或 bpl 项目的运行的参数:选择菜单 Run → Parameters... 打开运行参数:
在上面截图的 dll / lib / a 或 bpl 的运行参数里面,左面选择 Debugger,右面 Host application 选择调用这个文件的 exe 文件。
第 3/3 步:dll / lib / a 或 bpl 项目,直接点击运行 Run (F9) 就可以调试项目了。这个功能是把 exe 运行起来,这个 exe 调用到的库文件,包括动态库或静态库,都可以进行设断点和单步运行了。
自己的 exe 调用自己的 dll/lib -- 调用 .dll、.a、.lib 或 .bpl 的 exe 项目有源程序并且也是 C++ Builder 项目
建议把静态库、动态库 (包括ATL) 或控件项目和exe项目组成项目组,这样调试起来比较方便。
关键配置在这里:每一个项目,包括库和exe项目,都做如下设置:
选择菜单 Project → Options 打开项目的配置:
左面选择 C++ (Shared Options),右面建议在 Target 为 All configurations – All Platforms 所有配置和所有操作系统上修改
Final output directory 编译生成的最终文件的路径,默认为
.\$(Platform)\$(Config),修改为实际生成文件的文件夹,所有的项目都把生成的文件放在相同的文件夹里面,即所有生成的 *.dll 和 *.exe 在同一个文件夹里面。
这样设置之后,只要运行 exe 项目,这个 exe 调用的其他项目也同时可以设断点和单步运行,调试比较方便。
|