Inno Setup версия 5.6.1 (u).
Библиотека 64-разрядных классов Dev Studio 2015.
.NET Framework 4.6.1
Использует пакет UnamanagedExports.
Вот сценарий:
[Setup]
ArchitecturesInstallIn64BitMode=x64
ArchitecturesAllowed=x64
[Files]
Source: "DotNet64.dll"; Flags: dontcopy
[Code]
function TestFunction(): Boolean;
external 'Testing@files:DotNet64.dll stdcall setuponly delayload';
procedure CurPageChanged(CurPageID: Integer);
var
ires : Boolean;
begin
if CurPageID = wpWelcome then begin
ires := TestFunction();
end;
end;
Воткод C # DLL
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;
}
}
}
Как только в скрипте вызывается TestFunction()
, я получаю всплывающее окно:
Ошибка времени выполнения (в 2:55): не удалось вызватьproc.