我想知道如何使用 NSIS 从 C++ 可执行文件调用函数

I wanted to know how to call a function from C++ executable using NSIS

我想知道如何使用 NSIS 从 C++ 可执行文件调用函数。

我正在使用下面的方法,但它没有调用函数。

!include LogicLib.nsh
Section
SetOutPath $INSTDIR
  File E:\TestNullSoft\Test1.exe
  File E:\TestNullSoft\Test2.dll

System::Call 'KERNEL32::AddDllDirectory(w "$INSTDIR")'

Pop  ;
${If} [=10=] = 0
    MessageBox MB_OK "Function is NOT CALLED" IDOK
    
${EndIf}

SectionEnd

AddDllDirectory 函数在 C++ 项目中的声明如下所示:

您不能调用 .EXE 文件中的函数,只能调用 .DLL 文件。

具体来说,System::Call 将调用 LoadLibraryGetProcAddress,并且 LoadLibrary 无法加载 .EXE。