在Inno Setup的[Code]部分中,可以使用64位DLL吗?

问题描述

在文档64-bit Installation Limitations中说:

您无法在[Code]部分中加载/使用64位DLL,因为Windows不允许32位进程加载64位DLL(反之亦然)。但是,一个32位进程可以启动64位EXE。使用Exec函数[Run]部分来执行此操作。

这里LoadDLL被认为LoadDLL函数已被弃用,而有一个指向Using DLLs and .NET assemblies链接。但是这里没有任何关于位或LoadDLL函数的信息。为什么我仍然需要使用LoadDLL函数,并且在我的[Code]部分中可以使用64位DLL?

解决方法

Inno Setup是32位的,因此它只能加载32位DLL。系统的位在这里不起作用。 documentation you quote是正确且绝对清晰的:

您无法在[代码]部分中加载/使用64位DLL,因为Windows不允许32位进程加载64位DLL(反之亦然)。


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