假设我在delphi 7中有一个项目(或者XE,无论如何),命名为test.exe,另一个项目名为pkg1.bpl(项目类型为Package)。 bpl项目中有一个表单(如aboutbox)和一个显示此表单的函数。 现在我编译这两个项目并运行test.exe。当我点击btn1时,pkg1.bpl加载并调用该函数,并显示aboutbox表单。一切都很好......!
但是当我将此test.exe和pkg1.bpl复制到另一台PC并运行test.exe时,没有问题。但是当我点击btn1时,会发生错误:
找不到包(rtl190.bpl)(或者像这样)。
我想知道为什么delphi不使用嵌入test.exe的rtl190.bpl? 或者我该怎么做才能解决这个错误? 我想在我的项目中为我的表单使用bpl包,但我不想将rtl190.bpl或vcl190.bpl或这些文件复制到我的客户PC。 我想(如果可能的话)将所需的bpl文件嵌入到一个文件中,因为其他软件包可以使用它。
答案 0 :(得分:3)
我想知道为什么delphi不使用嵌入test.exe的rtl190.bpl?
没有理由为什么会这样做。软件包唯一受支持的位置是磁盘。这是对底层系统的反映。包是DLL,DLL必须驻留在磁盘上。任何从内存加载它们的工具都使用不受支持的实现细节,并且在将来的Windows版本中可能会中断。
以下是您的选择,我看到了: