.net Inno设置';无法调用proc';使用64位类库时
Inno安装程序版本5.6.1(u).net Inno设置';无法调用proc';使用64位类库时,.net,dll,inno-setup,class-library,.net,Dll,Inno Setup,Class Library,Inno安装程序版本5.6.1(u) Dev Studio 2015 64位类库 .NET Framework 4.6.1 使用UnmanagedExports包 以下是脚本: [设置] 体系结构安装64位模式=x64 架构sallow=x64 [档案] 来源:“DotNet64.dll”;标志:dontcopy [守则] 函数TestFunction():布尔值; 外部的Testing@files:DotNet64.dll stdcall setuponly delayload'; 过程Cu
[设置]
体系结构安装64位模式=x64
架构sallow=x64
[档案]
来源:“DotNet64.dll”;标志:dontcopy
[守则]
函数TestFunction():布尔值;
外部的Testing@files:DotNet64.dll stdcall setuponly delayload';
过程CurPageChanged(CurPageID:Integer);
变量
ires:布尔型;
开始
如果CurPageID=wpWelcome,则开始
ires:=TestFunction();
结束;
结束;
这是C#DLL代码
只要脚本中调用了TestFunction()
,我就会得到一个弹出窗口:
运行时错误(2:55):无法调用proc
DotNet64.dll是否编译为64位dll?InnoSetup无法按照访问64位DLL。您可以将其编译为32位DLL,也可以编写一个64位EXE来调用64位DLL并执行64位EXE 的确如此。只需将项目的平台目标设置为x86-请参阅。
using RGiesecke.DllExport;
using System.Runtime.InteropServices;
using Microsoft.Win32;
namespace DotNet64
{
public class InnSetDLL
{
[DllExport("Testing", CallingConvention = CallingConvention.StdCall)]
public static bool Testing()
{
return false;
}
}
}