Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将RC文件直接添加到Delphi DPR_Delphi_Resources_Project_Rc - Fatal编程技术网

将RC文件直接添加到Delphi DPR

将RC文件直接添加到Delphi DPR,delphi,resources,project,rc,Delphi,Resources,Project,Rc,我正在努力控制IDE外部的一些项目选项,例如版本编号。我可以这样做,如果我 (i) 从外部编译相关RC文件以创建RES文件并将其包含在DPR中,或(ii)将RC文件添加到项目中 但是,我不能仅仅通过在DPR中添加一行{$R'dummy.res'dummy.rc}的形式来让它工作。当且仅当RES文件已经存在时,它将编译/生成OK。我使用的是XE6,但我在XE甚至Delphi7中都有相同的行为 但有许多答案表明,在朝鲜民主主义人民共和国增加这样一条线是我们所需要做的。有人能澄清一下吗?我已经复制了一

我正在努力控制IDE外部的一些项目选项,例如版本编号。我可以这样做,如果我 (i) 从外部编译相关RC文件以创建RES文件并将其包含在DPR中,或(ii)将RC文件添加到项目中

但是,我不能仅仅通过在DPR中添加一行{$R'dummy.res'dummy.rc}的形式来让它工作。当且仅当RES文件已经存在时,它将编译/生成OK。我使用的是XE6,但我在XE甚至Delphi7中都有相同的行为


但有许多答案表明,在朝鲜民主主义人民共和国增加这样一条线是我们所需要做的。有人能澄清一下吗?

我已经复制了一些类似于你描述的东西。这可能与你的问题相同,也可能不同

我创建了一个新项目,并在顶层项目文件旁边放了一个.rc文件。然后我将这一行添加到项目文件中:

{$R myresource.res myresource.rc }
然后我编译,没有.res文件出现。然后我保存项目并重新编译,现在显示.res文件

在分析了这一系列事件之后,我想我了解了正在发生的事情。在保存项目之前,.dproj文件中没有任何内容可触发资源编译。保存项目时,它将显示在.dproj文件中:


myresource.res
很有可能这就是发生在你身上的事情


我认为您最好要么使用IDE来管理资源,要么自己编译资源。例如,使用“项目”菜单上的“资源和图像”操作可以完成前者。后者可以通过预构建操作完成

有关完整示例,请参见。只有在文件名中有空格时才需要引号(可能不需要空格)。
.rc
文件是否与您的项目在同一文件夹中?是的,这是一个测试项目-所有内容都在同一文件夹中。您是在进行“编译”还是完整的“构建”?Ken是的,我看到了您出色的versioninfo示例,这就是我使用的。正如我所说,如果预先编译RC文件(提供一个RES文件),我就可以让它工作。但是,仅仅将该行添加到DPR,并不会导致编译器调用资源编译器,它只是查找RES文件。解决方案应该是通过Shift-F11或项目管理器中相应的菜单命令或按钮或上下文菜单将rc文件添加到项目中。直接编辑dpr文件通常会导致奇怪的行为。大卫,我不太明白你所说的“将rc文件放在旁边”是什么意思。你的意思是你只是打开它,而没有添加到项目中?我认为,没有明确区分项目源和单元。虽然我不确定。“我认为您最好使用IDE来管理资源或自己编译它们。”…对比一下我最近的一个q/a组合的评论…:-)我观察到类似的行为。创建新版本,添加行保存项目,关闭(无生成)。重新打开,构建。在某些情况下,它似乎会自动将RC文件添加到项目中,那么一切都很好。但大多数情况下,情况并非如此。我在一定程度上是为了避免将RC添加到squillion项目中,但也在一定程度上是为了理解正在发生的事情。其他人建议你把这条线添加到朝鲜民主主义人民共和国。奇怪的