Inno Setup 无法导入 DLL

2024-04-28

我没有运气将 Delphi DLL 导入 Inno Setup (Unicode)。该DLL有一个简单的过程..

procedure Foo(); stdcall;
begin

end;

exports
  Foo;

该 DLL 包含在安装程序源中,并添加到文件列表中:

[Files]
Source: "MyDLL.dll"; Flags: dontcopy

然后,我在初始化中提取这个 DLL:

function InitializeSetup(): Boolean;
begin
  ExtractTemporaryFile('MyDLL.dll');
end;

最后,在脚本中声明此过程:

function DoFoo(): Bool;
  external '[email protected] /cdn-cgi/l/email-protection stdcall';

但是,当我运行安装程序时,出现错误:

Cannot Import dll: <utf8>MyDLL.dll.

我究竟做错了什么?


由于您没有在函数导入中使用延迟加载,因此 Inno Setup 加载程序无法运行,因为它没有找到您的库。这是因为在函数导出之前检查函数导出是否可用。InitializeSetup事件已触发,因此您的库尚未从存档中提取。

在你的情况下添加delayload http://jrsoftware.org/ishelp/topic_scriptdll.htm以正确的方式导入选项。但是,如果您添加,您可以省略手动解压并告诉安装程序为您解压库files:库文件名之前的前缀。这个前缀是documented http://jrsoftware.org/ishelp/topic_scriptdll.htm as:

在安装过程中,还可以使用特殊的“文件:”前缀来指示 设置自动从 [Files] 中提取一个或多个 DLL 加载第一个 DLL 之前的部分。

您的案例中的整个导入可以缩短为:

[Files]
Source: "MyDLL.dll"; Flags: dontcopy

[Code]
procedure Foo;
  external 'Foo@files:MyDLL.dll stdcall delayload';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Inno Setup 无法导入 DLL 的相关文章

  • 如何从DLL中提取字符串资源

    我正在制作管理系统文件扩展名的应用程序 但遇到问题 系统扩展如 jpg exe dll png txt等有一个名为FriendlyTypeName 例如 FriendlyTypeNamejpeg 文件的内容是 SystemRoot Syst
  • 桌面 Delphi 应用程序是否可以通过 Windows 8 认证(使用 Windows 应用程序认证套件)?

    显然 Delphi 任何版本 不支持安全异常处理程序 https forums embarcadero com thread jspa messageID 473469 Visual Studio 中的 SAFESEH 开关 在 Windo
  • AutoCAD 插件开发示例

    我对开发 AutoCAD 插件感兴趣 并试图了解几种不同类型的 AutoCAD 插件文件之间的关系 随 AutoCAD 插件一起提供的托管 DLL ARX 文件 https fileinfo com extension arx附带 Auto
  • TEdit onclick 全选?

    每当用户单击 TEdit1 或单击选择其中的某些文本时 如何选择 TEdit1 的所有文本 执行超出默认行为的任何操作都可能非常危险TEdit控制 您的用户知道标准 Windows 控件的行为方式 任何偏离此的行为都可能导致混乱 默认情况下
  • Inno Setup:如何根据代码更改语言文件

    我使用自己的语言文件 isl 而不是使用 Inno Setup 的默认语言文件 它允许我自定义一些消息 但现在 我想要每种语言文件有两个版本 一个用于首次安装 一个用于更新 但是 是否可以从代码中选择一个文件 如果是 该怎么做 也许有一些比
  • 如何仅在某些列中设置带有复选框的 TListView?

    我正在使用 Delphi 2010 并且我试图允许用户在 TListView 中的每行 2 个选项之间进行选择 使用 TListView 我可以将样式设置为 vsReport 并启用复选框 但这只会让我每行有 1 个复选框 我需要的是每行
  • 由于 MSVCR110.dll,MS Visual Studio 2012 Ultimate 无法启动

    当我尝试运行 MVS 2012 时 我总是收到错误 在库 DLL MSVCR110 dll 中找不到过程 crtCreateSymbolicLinkW 的入口点 我已经从我的另一台计算机复制了这个 dll 文件 一切正常 但没有帮助0 o
  • Inno Setup 提示用户输入文件夹并存储值

    我有以下需求 Run run robocopy exe source dest OLD source contents options Where source必须由目标计算机上的用户指定 这可以根据物理平台进行更改 目的地将与用户定义的源
  • Delphi 2010:如何将 UTF8 编码的 PAnsiChar 转换为 UnicodeString?

    情况 我有一个外部 DLL 它使用 UTF 8 作为其内部字符串格式 接口函数都使用 PAnsiChar 来传递字符串 我的应用程序的其余部分使用 Delphi 的本机string类型 由于我正在使用 Delphi 2010 这将映射到Un
  • 在 HP Load Runner 的 VuGen 中加载 javai.dll 时出现错误

    当我尝试在 HP load runner 的 VuGen 中编译一个简单的脚本时 无法启动 JVM 并出现以下错误 Java VM Internal Error Getting Error Loading javai dll 我在用着 HP
  • 如何使用 jQuery 和“长轮询”通过 Indy HTTP 服务器动态更新 HTML 页面?

    我读过这篇文章使用 JavaScript 和 jQuery 的简单长轮询示例 http techoctave com c7 posts 60 simple long polling example with javascript and j
  • java.library.path 中没有 ocijdbc12

    我正在尝试使用 OCI 驱动程序通过 java 程序连接到 oracle 以下是配置 Windows 7 32 位 JDK 1 7 Oracle 客户端 11g R2 ojdbc7 jar在我的独立应用程序的类路径中 但我收到以下异常 Ex
  • 链接到大地址感知 DLL

    假设我有一个使用 LARGEADDRESSAWARE 链接器标志集构建的 DLL 现在我有一个动态链接到该 DLL 的应用程序 这是否会使我的应用程序具有大型地址意识 如果不是 那么为任何 DLL 设置此标志是否有意义 讨论here htt
  • Inno Setup 安装可以设置 Windows 安全组吗?

    如何在 Inno Setup 安装过程中设置 Windows 安全组 我似乎想不出正确的文本来谷歌来弄清楚 也许暗示要搜索什么就足够了 好的 我找到了一些东西 我可以使用 net localgroup Windows 命令 http tec
  • VC9 和 VC8 库兼容性

    原来的问题是在那里问的 http www ogre3d org phpBB2 viewtopic php t 44832 http www ogre3d org phpBB2 viewtopic php t 44832 有人问 虽然我想在
  • Delphi 的免费加密库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在为 Delphi 2010 寻找一个免费且最新的加密库 该库实现 RSA 和 AES Rijnda
  • 我应该害怕使用 UDP 进行客户端/服务器广播通话吗?

    我在过去的两天里阅读了每一篇StackOverflow问题和答案 以及googling当然 关于印地TCP and UDP协议 以便决定在我的用户应用程序和 Windows 服务之间的通信方法中应该使用哪一种 从我目前所看到的来看 UDP是
  • Delphi如何使用其他窗体中的类型?

    抱歉 这是一个非常新手的问题 我正在对这个庞大的应用程序进行维护 它有5种不同的形式 我们将全局变量放在一个单元 uGlobal 中 但我似乎无法从数据单元 uData 访问它 我有这个 Unit uGlobal type TmyType
  • 如何将 TGifImage 中的帧提取为位图?

    下面的演示尝试在表单的画布上绘制 GIF 这不起作用 图像不会前进 如何让它发挥作用 procedure TForm1 FormCreate Sender TObject begin GIF TGIFImage Create GIF Loa
  • 我如何在 Visual Studio 2012 中同时构建项目(dll 和 lib)

    我设法在 dll 模式和库模式下设置构建项目 但不能同时设置 对于构建在 dll 中 项目 gt 属性 gt 配置类型 动态库 dll 项目 gt 属性 gt 目标扩展名 dll 对于内置库 项目 gt 属性 gt 配置类型 静态库 lib

随机推荐

  • 如何获得日期为 yyyy-mm-dd 的年份差异?

    我想得到以 yyyy mm dd 格式给出的两个日期之间的差异 差异应该是年份 var ds 2002 09 23 var today date new Date alert today date Date prototype yyyymm
  • 如何使用 Ant 配置惰性或增量构建?

    Java编译器提供增量构建 所以javac蚂蚁任务也是如此 但大多数其他进程则不然 考虑到构建过程 它们将一组文件 源 转换为另一组文件 目标 我在这里可以区分两种情况 变压器cannot获取源文件的子集 仅获取整个集合 这里我们只能做懒惰
  • Angular:将数据从工厂 ajax 调用传递回我的控制器

    我一直在使用 Angular 并且已经从使用本地数据 似乎工作正常 转向尝试通过工厂中的 ajax 调用来填充我的视图 这是代码 div h2 Get data using a Factory h2 div div div
  • 使用 Asynchronous ReadableStream 和 Response 从 Service Worker 的 fetch 事件返回 HTML

    这个问题类似于我的另一个问题 https stackoverflow com questions 62457644 use readablestream with response to return html from fetch eve
  • JavaFX 中的隐形舞台/场景

    我正在寻找一种隐藏 JavaFX 舞台或场景的方法 现在我知道了 hide 但这行不通 我需要一些仍然保留窗口的东西 但只是使其完全透明 一个很好的比喻是display none and visibility hidden在CSS中 第一个
  • Dataproc:使用 PySpark 从 BigQuery 读取和写入数据时出现错误

    我正在尝试读取一些 BigQuery 数据 ID my project mydatabase mytable 原始名称受保护 来自用户管理的 Jupyter Notebook 实例 内部Dataproc https cloud google
  • 通过命令行创建私有 github 存储库

    我希望能够通过命令行创建一个私人 github 存储库 我认为使用其余 API 应该可以做到这一点 但是我无法从文档中弄清楚如何做到这一点 这可能吗 The GitHub CLI https github com cli cli tool
  • 安全浮点除法

    我的代码中有一些地方我想确保 2 个任意浮点数 32 位单精度 的除法不会溢出 目标 编译器不保证 足够明确 对 INF INF 的良好处理 并且 不完全保证 IEEE 754 的异常值 可能未定义 并且目标可能会改变 另外 我无法对这几个
  • 使用 BeautifulSoup 在 python 中抓取多个页面

    我已经设法编写代码来从第一页中抓取数据 现在我不得不在这段代码中编写一个循环来抓取接下来的 n 页 下面是代码 如果有人可以指导 帮助我编写从剩余页面中抓取数据的代码 我将不胜感激 Thanks from bs4 import Beauti
  • 为什么playsound函数无法在python中播放我的mp3文件

    所以基本上我试图创建一个音乐播放程序 可以在您要求时播放音乐 我只是想让歌曲播放部分实际工作 所以我编写了一个超级简单的代码来测试它 import playsound playsound sample mp3 This was done i
  • 在 C# 中查找并写入大于 2GB 的文件

    在 C 中 FileStream的方法 Read Write Seek 采用integer在参数中 在一个上一篇文章 https stackoverflow com questions 5654298 filestream read wri
  • Access 2003中可以制作存储过程或函数吗?

    在Access 2003中 我们可以创建存储过程或函数吗 对于 Access 2003 答案是否定的 Access 2010 确实有表触发器和存储过程 这些是真正的引擎级例程 作为行更新的结果运行 因此 导致行修改的表单或 VBA 记录集代
  • 在 Silverlight 中克隆业务对象的最佳方法是什么?

    创建 DTO 克隆的最佳方法是什么 Silverlight 中没有 ICloneable 接口或 BinaryFormatter 类 反思是唯一的方法吗 这是我们为克隆编写的代码 这适用于 Silverlight 2 和 3 Public
  • CloudWatch:计算日志文件中特定字符串的出现次数

    我有包含特定弹簧模式的日志文件 这些字符串模式在每个日志事件中频繁出现 例如
  • Python 列联表

    作为我正在编写的项目的一部分 我正在生成很多很多列联表 工作流程是 获取具有连续 浮点 行的大型数据数组 并通过分箱将其转换为离散整数值 例如 结果行的值为 0 9 将两行切片为向量 X 和 Y 并生成列联表 https en wikipe
  • 终止进程树(C for Windows)

    以前曾有人问过这个问题 但我在代码中找不到明确的答案 我打开一个进程 ProcessA PID 为 1234 此进程打开一个子进程 ProcessAB PID 5678 完成后 我终止了 ProcessA 但 ProcessAB 仍然存在
  • Zendexpressive-php错误报告

    我正在尝试 zendexpressive 这是我的config autoload zend expressive global php当我尝试向将转到操作类的路径发出请求时 它返回错误页面 但我在 apache 错误日志中看不到任何 php
  • ggplot2 中的 date_minor_breaks

    我是初学者ggplot2 我无法使用date minor breaks在 x 轴上显示季度 刻度 这是我的代码 x lt c seq 1 12 time lt c 2010Q1 2010Q2 2010Q3 2010Q4 2011Q1 201
  • SceneDelegate 和 AppDelegate 之间的区别

    在我的 SwiftUI 项目中我看到AppDelegate文件以及SceneDelegate file 它们之间有什么区别 例如在方法之间SceneDelegate scene willConnectTo options 并在AppDele
  • Inno Setup 无法导入 DLL

    我没有运气将 Delphi DLL 导入 Inno Setup Unicode 该DLL有一个简单的过程 procedure Foo stdcall begin end exports Foo 该 DLL 包含在安装程序源中 并添加到文件列