首页 > 解决方案 > 我想知道如何使用 NSIS 从 C++ 可执行文件中调用函数

问题描述

我想知道如何使用 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 $1 ;
${If} $0 = 0
    MessageBox MB_OK "Function is NOT CALLED" IDOK
    
${EndIf}

SectionEnd

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

标签: nsis

解决方案


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

具体来说,会System::Call调用LoadLibrary并且不能加载.EXE。GetProcAddressLoadLibrary


推荐阅读