dll - 有没有办法在 Inno Setup 的 [Code] 部分使用 64 位 DLL?

标签 dll 64-bit inno-setup 32bit-64bit pascalscript

在文档中64-bit Installation Limitations兹述如下:

You cannot load/use 64-bit DLLs in the [Code] section, because Windows does not allow 32-bit processes to load 64-bit DLLs (and vice versa). A 32-bit process can, however, launch 64-bit EXEs. Use the Exec function or the [Run] section to do that.

这里LoadDLL据说LoadDLL函数已弃用,有一个指向 Using DLLs and .NET assemblies 的链接反而。但没有关于位数或 LoadDLL 的信息。在这里发挥作用。为什么我需要使用LoadDLL无论如何,有没有办法在我的 [Code] 中使用 64 位 DLL部分?

最佳答案

Inno Setup 是 32 位的,因此它只能加载 32 位 DLL。系统的位数在这里没有影响。 documentation you quote正确且绝对清楚:

You cannot load/use 64-bit DLLs in the [Code] section, because Windows does not allow 32-bit processes to load 64-bit DLLs (and vice versa).


这并不意味着您的特定问题没有解决方案,您正尝试通过加载 64 位 DLL 来解决该问题。但你必须询问那个具体问题。


请注意,Inno Setup 可以注册 64 位 DLL,因为它们是使用外部进程 regsvr32 注册的,而不是由 Inno Setup 32 位进程本身注册的。 regsvr32 有 32 位和 64 位版本。我相信您需要(Inno Setup 就是这样做的)根据 DLL 的位数执行正确版本的 regsvr32。

关于dll - 有没有办法在 Inno Setup 的 [Code] 部分使用 64 位 DLL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64642888/

相关文章:

php - 使用 PHP 修改安装文件

C# -(Unity .NET 项目)如何包含引用脚本但不应编译

c - 共享内存段dll单独加载其实例

c - 使用 GCC 的两个有符号 64 位乘法

c - 二维莫顿码64bits解码功能

vb6 - Windows 2008 64 位版本上的 TAPI

c# - C# 中的 Delphi DLL - var 数组作为参数

c# - .net 4.5中不存在使用System.Json的情况

inno-setup - 在安装过程中下载最新文件 Inno Setup