问题标签 [dcc32]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
133 浏览

delphi - 是否可以在 Delphi 调试图中输出源文件的路径?

-GD Delphi 编译器开关允许输出详细的调试映射。这样的文件包含例如关于被编译到应用程序中的文件的信息。

我想使用调试映射来分析应用程序依赖关系。目前,我遇到了具有相同名称但位于不同文件夹中的单元的问题,例如

要确定调试映射中提到了哪个文件,我需要该文件的绝对或相对路径。

有没有办法强制链接器输出源文件的路径?或者你能建议任何其他方法来获取这些信息吗?

0 投票
1 回答
568 浏览

manifest - Delphi dcc32 和清单编译

如何使用带有默认清单文件的 DCC32.EXE 编译 Delphi 项目?我编译了一些项目,但由于缺少清单文件,任务对话框没有出现。当我从 IDE 编译时,一切正常,但是当我使用 DCC32.EXE 时,任务对话框组件不起作用。我认为版本信息文件中的问题。

0 投票
0 回答
614 浏览

delphi - 如何找到一个delphi项目的所有单元

如何获取 delphi 项目所需的所有文件的列表?

文件在不同的目录下,因为有些在不同的项目中使用,必须转移给第三方(ESCROW),但只转移需要的文件,不转移其他文件。

我尝试批量“dcc32.exe --depends ...”并生成文件project1.d。那会有所帮助。

但是如果我将此选项添加到 dcc32.cfg,则什么也不会发生(cfg-File 似乎没有被使用)。然后我尝试将 dcc32.exe 重命名为 dcc32.orig.exe 并制作了一个自己的 dcc32.exe 作为调用者并将其放入 Delphi-bin-Directory。(它从给定的 ParamStrs(..) 创建一个新的命令字符串,添加“--depends”并执行 scc32.orig.exe)。什么也没发生。

接下来,我注释掉了我自己的 dcc32.exe 中的所有行,所以它什么都不做(简单的“开始结束”),但想知道...... project1.exe 仍将在 IDE 中编译(!!!) - 我是对此非常困惑。然后我删除了我的 dcc32.exe,Delphi 编译过程显示“...\bin\dcc32.exe 未找到。

看起来好像 Delphi 只会搜索二进制文件,但会与其他文件一起编译。

有没有专家知道,每次 Delphi 编译时如何默认添加开关“--depends”?

0 投票
1 回答
92 浏览

delphi - 使用 'dcc32 -JL' 编译时从另一个包中的另一个单元访问 Delphi 方法指针

这是一个有点复杂的场景 - 在实践中甚至更复杂,但我设法将这个问题最小化。

我定义了两个 Delphi 包:BasePackage.dpk 和 AnotherPackage.dpk

和单位

基本上一切都编译得很好,我什至可以生成基本的 C++Builder 单元,'dcc32 -JPHNEK --BCB'但是当我尝试为 C++Builder 生成库文件时,'dcc32 -JPHNEK --BCB -JL'我得到了

我尝试过使用不同的编译选项(当然还引入了{$G+}{$IMPORTEDDATA ON}单元和包(尽管它是默认设置),但没有看到它们有任何区别。

这些包在 .cfg 中没有任何选项或使用这些选项进行编译:

并且在 .dpk 中没有任何选项或使用这些选项:

知道我是否可以完成这项工作(我真的需要不同软件包中的功能)?

我一直在使用 Delphi 10.2 Tokyo 和 XE4 进行编译,结果相同。

0 投票
1 回答
702 浏览

delphi - [dcc32 致命错误]:F2084 内部错误:NC1921

我正在尝试在 Delphi Rio 中编译以下代码:

但是会发生以下错误:

[dcc32 致命错误] untObjectHelper.pas (36): F2084 内部错误: NC1921

在线上:

版本:Embarcadero® Delphi 10.3 版本 26.0.33219.4899

我没有找到有关此错误的参考,有人可以帮助我吗?非常感谢您

0 投票
1 回答
150 浏览

delphi - 使用 DCC32 的 Delphi 10.3 编译具有旧的 Delphi 5 视觉风格

几周前,我们公司从 Delphi 5 迁移到 Delphi 10.3 Rio。在一些问题之后,我们已经达到了使用新 IDE 编译我们的解决方案(许多 EXE)的目标。我们每天都在使用 DCC32 编译我们的项目。

不幸的是,他们中的一些人遇到了视觉问题。他们使用 Delphi 5 中的旧 VCL 视觉风格,而其他人则使用较新的风格。

经过大量研究,我们注意到每个有效的可执行文件都有一个清单(感谢 ResourceEditor.exe),但其他不工作的可执行文件没有任何清单。

项目看起来非常相似,没有强制清单文件,相同的编译方式,相同的资源生成器。

似乎default_app.manifest在生成期间使用了位于 Embarcadero 目录中的默认清单 ()。

有谁知道为什么某些 EXE 包含此默认清单而其他 EXE 没有它?

编辑:

谢谢大家的所有回复,我有点晚了,但我已经设法解决了我的问题。不幸的是,我们的一个图书馆在他的一个 res 文件中拥有一个清单。但是我们的一些应用程序不使用这个库并且有这个问题。

对于那些指出 IDE 解决方案的人,我们使用 dcc32 编译,如果我错了,请告诉我,不要使用指定运行时主题的 dproj 文件。IDE 解决方案运行良好,但由于我们使用 dcc32 编译,我们无法使用它。

0 投票
1 回答
278 浏览

delphi - 继承Delphi 2007 Project,需要编译

我花了相当多的时间(此时几乎是一整天)试图弄清楚如何获得一个可以编译 Delphi 2007 项目的 IDE。我只找到了使用 Delphi IDE(来自 RAD Studio,许可费为 1,500-4,000 美元)或 Lazarus(这显然不适合导入现有的 Delphi 项目,只是新项目)的解决方案。

此时,我只需要确认我可以编译项目。如果我能做到这一点,那么我可能有理由为 RAD Studio 支付许可费。

我的问题是有谁知道是否有可能从任何地方获得 2007 Delphi 编译器?另外,是否有任何免费的 IDE 可用于 Delphi 2007?我打电话给 RAD Studio 客户支持以获得试用版,但除非您购买当前版本的许可证,否则他们无法提供 2007 版的试用版。

该项目确实带有可通过命令行编译的 makefile,但在尝试使用当前 RAD Studio (10.4) 试用版附带的 v34 编译器进行编译时会出错。我相信这些错误是因为 v34 编译器版本不适用于 Delphi 2007,但我只需要确认并理想地使用正确的版本编译它(我认为编译器的 v16 或 17)。

有没有在 Delphi 方面有更多经验的人有任何关于我在哪里可以获得以前版本的编译器的信息,或者只是一般信息可以帮助我弄清楚如何在没有 RAD Studio 许可证的情况下编译这个项目?

0 投票
0 回答
62 浏览

delphi - dcc32 输出截断文件路径超过 128 个字符

dcc32 'D:\workspace\Delphi\Testes\dcc-path\Nova pasta\Nova pasta\Nova pasta\Nova pasta\Nova pasta\Nova pasta\Nova pasta\Nova pasta\Nova pasta\Nova pasta\Project1.dpr'

当文件路径长于 128 时,dcc 会截断。上面的错误输出如下:

D:\workspace\Delphi\Tests\dcc-path\Nova pasta\Nova pasta\Nova pasta\Nova pasta\Nova pasta\Nova pasta\Nova pasta\Nova pasta\NovError: E2003 Undeclared identifier: 'a'

我在提示/警告/错误中没有看到完整的文件名,也没有看到行号。有解决方法吗?

使用东京 10.2。

0 投票
1 回答
130 浏览

delphi - dcc 命令行编译器的 -i 和 -u 参数有什么区别?

Delphi dcc 命令行编译器(dcc32.exe、dcc64.exe、dcclinux64.exe 等)的 -i 选项到底是什么?与 -u? 帮助只是简要说明了这一点(并且 Embarcadero 文档似乎没有扩展该主题):

有一段时间,我认为 -u 用于包含源代码,而 -i 用于包含预编译的 .dcu 文件,但似乎并非如此。我还看到 -i 导入源代码和 -u 导入 .dcu 文件的情况,而且这似乎工作得很好。另一个想法是 -u 是 Delphi IDE 中项目搜索路径的对应物,-i 是 Delphi IDE 全局库路径的对应物,但这似乎也不是决定性的。

我什么时候应该使用-i 或-u 中的一个或另一个?

0 投票
1 回答
236 浏览

delphi - 禁止 Delphi 命令行编译器(dcc32.exe 等)中的提示

使用 Delphi 命令行编译器时如何抑制提示?(即dcc32.exe、dcc64.exe、dcclinux64.exe等)

我知道{$HINTS OFF}可以在源代码中使用它来关闭提示,但它的范围是本地的,只影响放置单元中的代码。我想要一个影响整个编译的全局选项。

我也知道在 IDE 中编译时,可以在 Project Options > Building > Delphi Compiler > Hints and Warnings > Output hints (True/False) 中全局关闭提示。我需要在命令行编译器中使用相同的选项。

可以使用该-W-[WARNING]选项抑制警告,但是提示有什么类似的吗?