标签: runtime-packages

了解.cbproj文件中的包导入

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

LinkPackageImports

LinkPackageStatics

AllPackageLibs

PackageLibs

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

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

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

linker c++builder c++builder-2010 runtime-packages

12
推荐指数
1
解决办法
4234
查看次数

获取给定DLL,EXE或BPL所需的BPL列表

我想知道是否有人知道一种优雅的方法来确定给定(编译)的DLL,EXE或BPL所需的BPL.

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

理想情况下,我想返回一个TStringList甚至以逗号分隔的内容,String其中包含所有必需的.bpl文件的名称.

delphi packages bpl runtime-packages

8
推荐指数
1
解决办法
1957
查看次数

为什么我的WPF应用程序中出现"无法加载DLL'sqlite3'"?

我添加了我认为必要的SQLite(和sqlite-net)包到我的应用程序.但是,在运行它时,我得到一个例外:

System.DllNotFoundException未被用户代码处理HResult = -2146233052消息=无法加载DLL的'sqlite3':找不到指定的模块.(例外

我安装了以下SQLite包:

在此输入图像描述

缺什么?

UPDATE

我尝试了ajawad987的建议,但仍然得到相同的运行时错误,即使我有这个:

在此输入图像描述

...还有这个:

在此输入图像描述

更新2

发生这个运行时异常的地方(在SQLite.cs中)对我来说似乎很奇怪:

如果SILVERLIGHT || USE_CSHARP_SQLITE

        var r = SQLite3.Open (databasePath, out handle, (int)openFlags, IntPtr.Zero);
Run Code Online (Sandbox Code Playgroud)

其他

        // open using the byte[]
        // in the case where the path may include Unicode
        // force open to using UTF-8 using sqlite3_open_v2
        var databasePathAsBytes = GetNullTerminatedUtf8 (DatabasePath);
        var r = SQLite3.Open (databasePathAsBytes, out handle, (int) openFlags, IntPtr.Zero);
Run Code Online (Sandbox Code Playgroud)

万一

但是我正在使用C#,那么为什么线路甚至无法运行呢?(它在"else"块中失败了)?

sqlite wpf runtime-packages nugetgallery visual-studio-2013

7
推荐指数
1
解决办法
9394
查看次数

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

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

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

TMyRecord = record
  Field1: Integer;
  Field2: Double;
  function DoSomething(AValue1: Integer; AValue2: Double): Boolean;
end;
Run Code Online (Sandbox Code Playgroud)

因此,简单地说明一下:我可以在主机应用程序和DLL(在任一方向)之间传递TMyRecord的"实例",而无需使用运行时包或共享内存DLL,并从主机EXE执行DoSomething功能和DLL?

delphi dll record shared-memory runtime-packages

5
推荐指数
2
解决办法
1341
查看次数

如何使用运行时包构建"需要导入的数据引用"

为了帮助我们模块化单片应用程序,我们正在设置用于调试版本的包,同时仍然编译为发布版本的单个exe.

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

在构建EAUtils包本身时会发生这种情况.我还没有构建依赖于EAUtils的包.EAUtils仅依赖于rtl/vcl包和我为Jedi WinApi单元创建的包.

这是行的结果:

// This is a TaskDialog override, with the same args as the old MessageDlg.
function TaskDialog(const aContent: string; const Icon: HICON = 0; 
  const Buttons: TTaskDialogCommonButtonFlags = TDCBF_OK_BUTTON): Integer;
const
  Captions: array[TMsgDlgType] of Pointer = (@SMsgDlgWarning, @SMsgDlgError, @SMsgDlgInformation, @SMsgDlgConfirm, nil);
var
  aMsgDlgType: TMsgDlgType;
  aTitle: string;
begin
  aMsgDlgType := TaskDialogIconToMsgDlgType(Icon);
  if aMsgDlgType <> mtCustom then
    aTitle := LoadResString(Captions[aMsgDlgType])
  else
    aTitle := …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-xe2 runtime-packages resourcestring

5
推荐指数
1
解决办法
2813
查看次数

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

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

提前致谢...

delphi delphi-xe2 runtime-packages

5
推荐指数
1
解决办法
1342
查看次数

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

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

我们是否在Delphi XE2中使用新的FireMonkey框架具有类似的开发选项?

delphi delphi-xe2 firemonkey runtime-packages

4
推荐指数
1
解决办法
1516
查看次数

什么是Delphi XE2 VCL运行时BPL?

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

我有一个问题,我可能会在这里提出另一个问题和链接,我认为可以通过包含一个特定的BPL来解决VCL.CheckLst.pas.

我不只是知道这个问题的答案的原因是,当我开始一个新的VCL形成的项目,没有VCL BPLs在默认情况下,运行时包,有RTL和一些firemonkey东西和良好的老MadExcept和印地,但没有VCL那是什么处理?我的Delphi配置错误了吗?

delphi vcl delphi-xe2 runtime-packages

1
推荐指数
1
解决办法
3210
查看次数

链接运行时包

当我构建一个项目,其中"链接与运行时包"设置为true时,输出exe非常小,在我的电脑上,exe工作正常,但有些人得到rtl190.bpl丢失的错误.我怎样才能解决这个问题?我还想要一个小的输出文件.

delphi runtime-packages

1
推荐指数
1
解决办法
2090
查看次数