Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Inno设置';无法调用proc';使用64位类库时_.net_Dll_Inno Setup_Class Library - Fatal编程技术网

.net Inno设置';无法调用proc';使用64位类库时

.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

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';
    过程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;
          }
       }
    }