如何进入RTL/VCL?

3
在使用Delphi 7 IDE进行调试时,如何进入程序文件/borland/delphi7/source文件夹中的代码?听起来像个愚蠢的问题,但探究的心灵想要调试。(并不是我认为源代码有什么问题,我只是想知道为什么第9000次我不能将TJpegImage分配给TjpegImage)。
2个回答

9
请确保在项目选项中启用了“使用调试 DCUs”选项,并且VCL源文件夹位于调试器的源路径中。
至于为什么您无法将TJPEGImage分配给TJPEGImage,这通常只会在您尝试在没有使用运行时包的情况下通过DLL边界传递TJPEGImage对象时发生,因此应用程序和DLL正在针对RTL的不同副本进行内部比较,导致is运算符(即ASource is TJPEGImage)返回False,而它通常应该返回True。

1
著名的“无法将TFont分配给TFont” ;) :) - migajek
1
我检查了使用调试 DCU 的选项,并将 C:\Program Files\Borland\Delphi7\Source\Rtl\Sys 添加进去,但如果我使用格式化函数,它不会跳转到 sysutils。重建后也没有像正常源代码中看到的蓝色点。 - Peter Turner
你要么使用BPL(禁用它们!),要么只编译(不是完整构建),或者你在IDE或项目选项上搞砸了。 - Alex

1

你是否将RTL/VCL源路径添加到调试单元路径中?此外,我的Delphi 7会要求我提供源文件的位置,如果它不在路径中...所以你的也应该这样做 :)


我刚试了一下,但什么也没发生。你通常会将源路径保留在 Debug Path 中吗?如果是这样,在 RTL/VCL 源目录中您通常会有能够在该行上断点的蓝色点吗? - Peter Turner
是的,通常我这样做,我看不出为什么我不应该这样做? - migajek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接