我正在寻找可能与单元初始化顺序相关的错误.有没有办法看到哪个initialization部分执行时?我需要知道订单.这是在调试期间,所以我拥有Delphi IDE的全部功能,在我的案例中是Delphi 2009.
我可以设置断点,但是当有很多单位时这是相当繁琐的.
你有什么建议吗?
以下是我的测试项目中MAP文件的示例...
.......
.......
.......
0001:001EFC14 00000020 C=CODE S=.text G=(none) M=Vcl.CategoryButtons ACBP=A9
0001:001EFC34 0000284C C=CODE S=.text G=(none) M=Vcl.SysStyles ACBP=A9
0001:001F2480 000407A8 C=CODE S=.text G=(none) M=Vcl.Styles ACBP=A9
0001:00232C28 00006998 C=CODE S=.text G=(none) M=MainU ACBP=A9
0002:00000000 000000B4 C=ICODE S=.itext G=(none) M=System ACBP=A9
0002:000000B4 00000008 C=ICODE S=.itext G=(none) M=SysInit ACBP=A9
.....
.....
Run Code Online (Sandbox Code Playgroud)
我的单元(MainU)驻留在00232C28到00006998.此处,内存地址前缀为0001.从下一个单元开始,它开始为0002,依此类推.
这是什么意思?
同样,什么是'C =','S =''G =''M ='和'ACBP ='?
是否有任何工具可以为Delphi单元生成依赖关系图,同时考虑条件编译指令.我想强调一下,这应该是单元依赖图,而不是类依赖.此外,能够重新排列和隐藏生成的图表中的某些部分也是很好的.
我已经尝试了解并且它似乎没有做我想要的.
我正在使用Delphi XE7开发Windows 32位应用程序.
我的应用程序包含许多单元,它有一个初始化部分.我需要首先初始化一个特定的初始化部分.
是否可以设置优先级?我曾尝试在dpr文件中编写初始化部分,但编译器拒绝了这一点.
请帮我初步执行特定的初始化部分.提前致谢.
每次我运行Delphi应用程序时,都会打开一个“ cmd”窗口,并且一些用户抱怨该窗口崩溃,称该计算机崩溃了,我想了解为什么打开此cmd窗口以及如何使其不打开。
我的.dpr文件是这样的
...
Frm05715 in 'fontes\Frm05715.pas' {Form05715},
Frm99903 in 'fontes\Frm99903.pas' {Form99903};
{$R *.res}
begin
Application.Initialize;
...
Application.Run;
Run Code Online (Sandbox Code Playgroud)
并且cmd窗口甚至在Application.Initialize之前打开,这是运行的第一行