对如何在C++Builder中使用为 Delphi 安装的64位组件感到困惑

xa9qqrwz  于 2023-10-18  发布在  其他
关注(0)|答案(1)|浏览(151)

我对添加一个叫做StyleControls的RAD Studio有点困惑。
我听说如果你把它安装在 Delphi 版本上,你也可以和CBuilder一起使用。所以我编译了 Delphi 32位的StyleControls源代码并安装了它。我将其源代码添加到IDE的Library路径选项中。在 Delphi 方面,无论是32位还是64位,一切都运行得很好。
问题是,当我转向C
Builder时,32位工作得很好,但由于某种原因,64位就不行了。当我为CBuilder的VCL应用程序更改为64位时,并尝试使用例如来自托盘的StyleControls的按钮编译它时,它会给我一个错误:
[bcc 64致命错误] Unit1.h(10):找不到'scControls.hpp'文件
所以,我环顾四周,发现当我在 Delphi 中编译StyleControls时,它也给了我路径处的.hpp:“C:\Users\Public\Documents\Embarcadero\Studio\22.0\hpp\Win32”。
所以,我在我的项目选项“包括文件搜索路径”中添加了它,我想这似乎解决了这个问题。我尝试重新编译64位,但我得到另一个错误:
[ilink 64错误]致命:无效的目标文件“C:\USERS\PUBLIC\DOCUMENTS\EMBARCADERO\STUDIO\22.0\DCP\STYLECONTROLS_D11ALEXANDRIA.BPI”
我不知道该怎么处理。做这件事的正确方法是什么?如何使用StyleControls for C
Builder for 64-bit?

eanckbw9

eanckbw91#

我发现问题所在了。
对于 Delphi ,只编译32位就可以了,这样也可以使用64位。但是,如果你想在CBuilder中使用64位,你必须在“Project/Options/ Delphi 编译器/Output - C/C"中选择“Generate for CBuilder(with libs)”选项。
我为64位选择了一个文件夹。对于那些试图在 Delphi 中为StyleControls编译64位的人来说,有一点小提示:请确保您输入.dpk的requires{$IFDEF WIN32}designide,{$ENDIF}也适用于contains字段:{$IFDEF WIN32}scPReg in 'scPReg.pas',{$ENDIF}。在添加这些之后,它让我为64位构建,并将生成的.hpp.bpi等放置在我指定的文件夹中。
当你有了所有为C
Builder生成的文件后,进入“tools/options/language/C++/path and directories”,找到“Library paths”,并确保64位,添加编译时生成所有C++Builder文件的文件夹。
如果它给你同样的错误,我得到了,像“[ilink 64错误]致命:无效的对象文件“C:\USERS\PUBLIC\DOCUMENTS\EMBARCADERO\STUDIO\22.0\DCP\STYLECONTROLS_D11ALEXANDRIA.BPI”,这意味着您为BPI放置了32位路径,删除它应该可以解决此问题。

相关问题