How to add DLL function into Inno Setup iss file?

2019-06-07 14:15发布

问题:

I tried to read sample code for how to load DLL at Inno Setup, but I'm confused.

I have one DLL (ChkArchInfo.dll) and the contents is simple:

extern "C" __declspec(dllexport) bool __stdcall IsARM()
{
    SYSTEM_INFO si; 
    GetNativeSystemInfo(&si); 

    if(PROCESSOR_ARCHITECTURE_ARM == si.wProcessorArchitecture)
       return true;

    return false;
}

I know I need to use [Files] section to load the DLL file. But how to declare this function at .iss to let me use it?

BTW, If there any functions in Inno Setup to get ARM architectute? (ProcessorArchitecture doesn't include ARM architectute)

Please help me to do.... Thank you!!!

BR, Alan

回答1:

Read the Inno Setup documentation on Using DLLs and .NET assemblies.

You primarily have to declare an external function prototype. And add the DLL to the [Files] section, if you want to embed the DLL into the installer.

[Files]
Source: "MyDll.dll"; Flags: dontcopy
[Code]
function IsARM: Boolean;
  external 'IsARM@files:MyDll.dll stdcall';

Though it would be better to call the GetNativeSystemInfo from Pascal Script directly. But that's a different question.