问题标签 [runtime-packages]

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 回答
1596 浏览

delphi - Delphi XE2:使用 FireMonkey 框架的运行时包构建应用程序

我们可以使用运行时包 (*.bpl) 构建 VCL Win32 应用程序。这些包可以动态或静态地加载和卸载。

Delphi XE2 中的新 FireMonkey 框架是否有类似的开发选项?

0 投票
2 回答
1438 浏览

delphi - 在宿主应用程序和 DLL 之间传递包含方法的记录

是否有可能(不使用运行时包或共享内存 DLL)在主机应用程序和记录类型包含函数/过程(Delphi 2006 及更高版本)的 DLL 模块之间传递记录类型?

为了简单起见,我们假设我们的 Record 类型不包含任何 String 字段(因为这当然需要 Sharemem DLL),下面是一个示例:

所以,简单地说:我可以在主机应用程序和 DLL 之间传递一个 TMyRecord 的“实例”(在任一方向),而不使用运行时包或共享内存 DLL,并从主机 EXE 执行 DoSomething 函数和DLL?

0 投票
1 回答
3339 浏览

delphi - 什么是 Delphi XE2 VCL 运行时 BPL?

旧的 Delphi 7,取消选中运行时包并构建所有技巧似乎不再起作用,所以我无法恢复任何适合我的 Delphi 项目的运行时 BPL 集。

我有一个问题,我可能会在此处提出另一个问题和链接,我认为可以通过包含包含VCL.CheckLst.pas.

我不只是知道这个问题的答案的原因是当我开始一个新的 VCL 表单项目时,默认情况下运行时包中没有 VCL BPL,有 RTL 和一些 firemonkey 的东西以及旧的 MadExcept 和 Indy,但没有 VCL ,这有什么关系?我的 Delphi 配置错误吗?

0 投票
1 回答
3291 浏览

delphi - 使用运行时包构建时如何解决“需要导入的数据引用”

为了帮助我们模块化单体应用程序,我们正在设置用于调试构建的软件包,同时仍编译为单个 exe 用于发布构建。

我们的一个包(EAUtils)包含一个现在正在生产的单元[DCC Error] E2201 Need imported data reference ($G) to access 'SMsgDlgWarning' from unit 'SystemUtils'

这发生在构建 EAUtils 包本身时。我还没有构建依赖于 EAUtils 的软件包。EAUtils 仅依赖于 rtl/vcl 包和我为 Jedi WinApi 单元创建的包。

这是以下行的结果:

更具体地说,这是引用SMsgDlgWarning、和的结果SMsgDlgError,它们都在 中声明。SMsgDlgInformationSMsgDlgConfirmVcl.Const

请注意,当我们构建单个可执行文件时,此代码编译不会出错。

作为一种优化手段,我们的包含文件确实包含{$IMPORTEDDATA OFF},因为这允许更快地访问(全局)变量和常量。请参阅http://hallvards.blogspot.com/2006/09/hack13-access-globals-faster.html

根据有关错误的文档(http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/cm_package_varref_xml.html)这是原因,它说“为了缓解问题,它通常最容易打开 $IMPORTEDDATA 开关并重新编译产生错误的单元。”

因此,我已经{$IMPORTEDDATA ON}在我们的包含文件中进行了设置,并通过在项目选项部分中将设置Use imported data references为 true 来确保。Delphi Compiler | Compiling | Debugging

不幸的是,与文档相反,这并没有缓解问题。即使直接在有问题的代码上方设置此编译器指令并重新构建包也不能消除错误。

我还需要做什么来解决这个 E2201 错误?不确定,但 SMsgDlgWarning 及其朋友是资源字符串可能很重要?

0 投票
3 回答
2240 浏览

delphi - 获取给定 DLL、EXE 或 BPL 所需的 BPL 列表

我想知道是否有人知道确定给定(已编译)DLL、EXE 或 BPL需要哪些 BPL的优雅方法。

我不确定这是否可能只是简单地扫描二进制文件以查找对.bpl文件名的文本引用(这很容易出现误报)。

理想情况下,我想返回一个包含所有必需.bplTStringList文件名称的甚至逗号分隔的文件。String

0 投票
2 回答
5134 浏览

linker - 了解 .cbproj 文件中的包导入

我正在使用 Embarcadero RAD Studio 2010 (C++)。项目文件 (.cbproj) 有五个不同的标签,其中包含 .bpis 或 .libs 的列表。我想要一些关于链接器如何使用这些库文件列表的信息(在使用或不使用运行时包进行构建时)。

LinkPackageImports

LinkPackageStatics

所有包库

包库

PackageImports
我想我已经理解了最后一个。它包含可以从 IDE 中的项目属性设置的运行时包列表。

这个问题的动机是我试图从我的应用程序中消除不必要的依赖关系。.cbproj 中的这五个标签似乎都包含任意种类的不同库和 bpi。一些我知道我不需要的库,还有一些我认为我不需要的库。从某些列表中删除某些库似乎没有效果,而从其他列表中删除其他库会导致表单的链接器错误[ILINK32 Error] Fatal: Unable to open file 'FILENAME.OBJ'

我正在慢慢解决所有链接器问题,但是当我在这五个列表之一中包含库名称时,确切地知道我告诉链接器做什么会很有帮助。

0 投票
1 回答
537 浏览

delphi - Windows 2008 and wrong BPL loading

I have an application builded with Run-time Packages. When the executable starts it auto loads the required packages (.bpl).

Recently we has installed an Windows 2008 R2 server to use as Terminal Services.

We maintain some old compiled versions of our application in different paths, like this:

Common.bpl is the a run-time package what app.exe depends on.

THE PROBLEM:

I start "c:\app\version_2\app.exe" and it loads "c:\app\version_2\common.bpl". When I start the "c:\app\version_1\app.exe" it loads the WRONG bpl (from version_2).

The path "c:\app\version_2\" isn't at the system search path.

At Windows2003 server this problem doesn't occurs.

What can I do to solve this?

Thanks!


I have downloaded the Process Explorer (microsoft sysinternals), and checked the loaded modules of each executable, all they are correct!

But I noticed another problem. After start the second version, an entry-not-found-error occurs, telling me what a initialization entry point, of an unit what only exists in one of the versions, could not be found.

Something is very strange. The ProcessExplorer is telling me that the process is loading the correct modoles, but when they are running this seems not be happening.

Seems the applications are sharing the loaded modules.


SOLVED

There was a MouseHook using FindVCLWindow, this was generating the AV.

Sorry about inconvenience guys, and thanks!

0 投票
1 回答
1456 浏览

delphi - 如何获取加载的运行时包的列表?

我正在为我的应用程序创建一个“版本信息”对话框;类似于 Delphi 在“关于”对话框中的内容。我只想显示运行时包(.BPL文件)的版本信息,而不是所有加载的 DLL。是否RTL包含函数来获取已加载包的列表,或者我必须使用该EnumProcessModules函数并过滤结果?

提前致谢...

0 投票
1 回答
98 浏览

java - 如何让我的 java 应用程序看到它需要的类?

我用java构建了一个小命令行程序。它有一个在 main 方法中被实例化和使用的类。但是当我在命令行编译它时,它并没有“看到”它需要运行的类。它接受在运行时传入的参数。我可以在 Netbeans 中设置它并且运行良好。但我希望能够在命令行中使用它。我试过 jar-ing ,它抛出一个异常并且看不到我在 main 中实例化的类。我在我的 CS 课程中学习了 Java,但我的教授并没有特别深入地介绍部署。

有什么想法可以帮助我摆脱泡菜吗?

谢谢!!

0 投票
1 回答
645 浏览

delphi - 我在运行时包 delphi xe2 上运行 exe 文件时遇到问题

我试图用动态运行时包制作程序Delphi XE2。当我编译它时没有问题,但是当使用 F9 程序运行时,刚刚编译并创建了 exe 文件但它没有运行。我的配置有什么问题?

我使用的配置

  • 与运行时包集链接真——来自所有配置的值 32 位 Windows 平台集真

  • 运行时包继承集 True

注意“当与运行时包链接时”设置为false,它可以正常运行。