我想知道如何使用 NSIS 从可执行文件C++调用函数。
我正在使用以下方法,但它没有调用该函数。
!include LogicLib.nsh
Section
SetOutPath $INSTDIR
File E:TestNullSoftTest1.exe
File E:TestNullSoftTest2.dll
System::Call 'KERNEL32::AddDllDirectory(w "$INSTDIR")'
Pop $1 ;
${If} $0 = 0
MessageBox MB_OK "Function is NOT CALLED" IDOK
${EndIf}
SectionEnd
AddDllDirectory 函数在 C++ 项目中声明,如下所示:
不能调用.EXE文件中的函数,只能调用.DLL文件。
具体来说,System::Call
将调用LoadLibrary
和GetProcAddress
,LoadLibrary
无法加载.EXE。