标签: dcu

什么是Delphi DCU文件?

什么是Delphi DCU文件?

我相信它代表"Delphi Compiled Unit".假设它包含目标代码,我是否正确,因此对应于从C/C++源代码文件编译的".o"文件?

c c++ delphi compilation dcu

14
推荐指数
2
解决办法
1万
查看次数

我怎样才能看到编译了哪个Delphi版本的.dcu?

如果我有一些.dcu文件; 我怎样才能找出他们编译的Delphi版本?

我收到了一些旧的源代码,包含了一些.dcu文件,我无法访问原始源代码.我想重构这个库,但为此我想让它首先在原始的Delphi版本中进行编译.


顺便说一句,编译器在这里可能会更有帮助.它声明文件X是用"不同"版本编译的,没有说 - 是 - 版本是....

delphi dcu

12
推荐指数
2
解决办法
1565
查看次数

哪里有Delphi DCU文件?

目前我还没有在我的主项目中为Delphi DCU设置任何特定的输出目录.这导致DCU文件最终与我的.pas源文件位于同一目录中.对我来说,这感觉很难看,因为我不喜欢将.pas和.dcu文件混合在同一目录中.存储Delphi .dcu文件的最佳实践是什么 - 将它们保存在每个项目的一个目录中?或者也许为每个源文件夹创建一个DCU目录?欢迎任何想法.

delphi dcu

9
推荐指数
1
解决办法
5410
查看次数

如何判断Delphi DCU中定义的类型?

我有一组编译的Delphi dcu文件,没有源代码.有没有办法确定dcu中定义的类型?

delphi dcu

6
推荐指数
2
解决办法
822
查看次数

如何阻止调试器进入Delphi提供的单元?

调试器在错误的源代码中步入(如同F7),但我想恢复正常工作模式,其中Delphi基本DCU(库)只编译到我的代码中,并且源不用于调试.

例如,在我的程序中出现错误时,调试器正在进入Controls.pas,进入TControl.Click.正常情况(安装后)是Delphi跨越这些方法的.

我应该在没有调试信息的情况下重新编译Controls.pas吗?如果是这样,怎么样?


我通过附加信息扩展这个主题,以便更好地理解:

我们使用Delphi6 Prof. Mouse有什么问题(系统错误代码5).因此,我们要重新编译为Controls.pas以替换Mouse Position getter代码.然后:

  1. 我为它创建了一个文件夹:"c:\ D\Common\Delphi_Patches\Delphi_6 \"
  2. 我将原始的Controls.pas放入其中.
  3. 我修改了Controls.pas,取代了位置getter代码.
  4. 我设置了Delphi的Library路径,将第一个文件夹设置为"c:\ D\Common\Delphi_Patches\Delphi_6 \"

通过这些步骤,我可以使用鼠标安全代码编译源代码.

好的,但随后德尔福每次都会在F7上进入Controls.pas,并且在任何例外情况下 - 这都是非常"愤怒"的事情.

无论我从库路径中删除了"Controls.pas" - 然后调试器为它找到原始的"Controls.pas",然后打开它...... :-(

我们不在任何代码中使用"Use Debug DCU-s".

我试图从编译器选项中删除"Debug Information",但不管怎么说,Delphi打开原来的Controls.pas ...

所以我搜索到Delphi的方式不要进入"Controls.pas",但是使用我的dcu ......

我希望这能为解决问题提供更好的背景.

delphi debugging dcu

5
推荐指数
2
解决办法
5409
查看次数

找不到Dcu文件

编译我的Delphi代码时遇到问题.我有3个类,XmlFileManager(具体),XmlNodeManager(抽象),XmlEnpManager(XmlNodeManager的子项和具体).下面,一些定义类代码:

XmlFileManager

unit XmlFileManager;
interface
uses
  xmldom, XMLIntf, msxmldom, XMLDoc, SysUtils, DateUtils, Classes, Dialogs,
  XmlNodeManager, XmlEnpManager;
type
  TXmlFileManager = class
     [...]
  end;
[...]
end.
Run Code Online (Sandbox Code Playgroud)

XmlNodeManager

unit XmlNodeManager;
interface
uses
  xmldom, XMLIntf, msxmldom, XMLDoc, SysUtils, DateUtils, Classes, Dialogs,
  XmlFileManager;
type
  TXmlNodeManager = class
     [...]
  end;
[...]
end.
Run Code Online (Sandbox Code Playgroud)

XmlEnpManager

unit XmlEnpManager;

interface
uses
  xmldom, XMLIntf, msxmldom, XMLDoc, SysUtils, DateUtils, Classes, Dialogs,
  XmlFileManager,  XmlNodeManager;

type
  TXmlEnpManager = class (TXmlNodeManager)
      [...]
  end;
[...]
end.
Run Code Online (Sandbox Code Playgroud)

在XmlNodeManager和XmlEnpManager中,无法识别TXmlFileManager类.编译时,编译失败并显示消息:

[dcc32致命错误] SiGAS.dpr(23):F1026找不到文件:'XmlManager.dcu'

过去,XmlFileManager被称为XmlManager.有任何想法吗 ?.

我的.dpr:

uses
  Forms,
  Main in …
Run Code Online (Sandbox Code Playgroud)

delphi file-not-found dcu

4
推荐指数
1
解决办法
2万
查看次数

是否可以单独根据BPL/DCP构建针对BPL/DCP的EXE项目,其中"Build With Runtime Packages"未经检查?

我有一个BPL项目(有一些基础东西)和一个EXE项目,它在其搜索路径中有另一个项目输出的位置(BPL和DCP).当使用"Build With Runtime Packages"构建EXE项目时,它构建正常.但是,它需要我部署EXE和BPL.到现在为止还挺好.

因为我宁愿只部署EXE(无论它变大),我猜我只是取消选中"Build With Runtime Packages"并且就是这样,但事实并非如此.它不会构建,并开始抱怨缺少的类.我可以编译EXE项目的唯一方法是将实际BPL项目的DCU路径添加到EXE项目的搜索路径中.我可以这样做,但为什么我被迫指向DCU?德尔福不能把它们从BPL中拿走吗?这不只是一个品味的问题,如果我走这条路,并链接到DCU,当谈到属于表格的DCU时,它会询问我表格DFM,迫使我也将我的来源文件夹包含在EXE中项目的搜索路径,现在它们似乎正在编译,这是令人望而却步的.每次我想编译我的EXE项目时,我都无法重新编译我的BPL项目代码库.

我希望我已经说清楚了.

如何实现标题中提出的任何帮助表示赞赏.

谢谢.

delphi build bpl dcu delphi-10.1-berlin

4
推荐指数
1
解决办法
1024
查看次数

在单个DCU中编译多个单元

来自.NET背景,现在正在使用Delphi.在.NET中,我曾经有一个单独的库项目,其中许多类分隔成不同的文件.当我编译这个项目时,我得到了一个DLL文件.

但是,我无法在Delphi中做到这一点.我有很多类,每个类都在自己的文件中,并且有自己的单元名称(我没有找到一种方法来拥有多个具有相同单元名称的文件).当我编译我的项目时,我的项目中的每个单元都有一个DCU文件(我相信这相当于一个.NET DLL?).

问题是我不想拥有那么多文件!我想只有一个DCU文件用于我所有不同单元的类.有没有办法实现我想做的事情?你如何处理这些DCU?

delphi dll dcu

2
推荐指数
1
解决办法
1784
查看次数

安装后Delphi 2010无法找到项目中使用的组件的dcu文件?

我几年前完成了一个项目.现在我想改进它.因此,我安装之前在项目中使用的组件.但是,当我运行该项目时,它会出错.编译器找不到某些组件对象的dcu文件.我该如何解决?

delphi components dcu

-1
推荐指数
1
解决办法
827
查看次数

我如何以表格形式查看DCU文件

有什么办法可以将DCU文件查看为表单?

delphi pascal dcu

-3
推荐指数
1
解决办法
169
查看次数