nsis - 我想知道如何使用 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++ 项目中声明如下:
解决方案
您不能调用 .EXE 文件中的函数,只能调用 .DLL 文件。
具体来说,会System::Call
调用LoadLibrary
并且不能加载.EXE。GetProcAddress
LoadLibrary
推荐阅读
- r - 使用 ggplot2 更改多边形的填充颜色
- python - 如何将 tkinter 帧中的元素数存储为整数?
- laravel - Laravel 8 防止用户密码更改后注销?
- discord.js - 无法读取未定义的属性“成员”(discord.js)
- qt - 更改显示 DPI 比例时如何自动调整所有小部件的大小?
- c++ - 这个 std::upper 在这段代码中到底做了什么?
- algorithm - 关于最短路径的非常困难和优雅的问题
- python - 每个与 Python 相关的可执行文件都损坏了:“致命的 Python 错误:init_import_size:导入站点模块失败”
- django - Django仅在一个范围内根据月份和日期过滤日期时间
- node.js - 打字稿节点表达路由器和第二个参数。Typescript-eslint/no-misused-promises