在MSVS 2003/2005中构建时,NSIS插件在负载上退出
NSIS Plugin Exiting on Load when Built in MSVS 2003/2005
我正在尝试使用MSVS 2005(也尝试过MS visual c++ toolkit 2003)构建一个NSIS插件,但是当我从NSIS调用导出的函数时,什么都没有发生。
下面是示例代码来说明这个问题:
#include "stdafx.h"
#include <windows.h>
#include "nsis_ansipluginapi.h"
#define NSISFUNC(name) extern "C" void __declspec(dllexport) __cdecl name(HWND hWndParent, int string_size, char* variables, stack_t** stacktop, extra_parameters* extra)
NSISFUNC(Test)
{
MessageBox(0,"Test",0,0);
}
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
我使用MSVS2005设置的默认选项。
我假设有某种动态依赖,这个DLL找不到。
有人经历过吗?
请帮忙,
谢谢!
最常见的问题是链接到一个C运行时dll (msvcrt*.dll),你可以使用Dependency Walker检查你的导入。
因为NSIS在Win95上运行,我们根本不使用CRT,但如果你的目标是Win98+,那么你可以链接到普通的msvcrt.dll(没有版本号)。这在vs2003及以后的版本中很难做到,所以使用/MT
或其他CRT选项通常工作量更少。如果您愿意使用DDK/WDK而不是VS,那么您可以链接到普通的msvcrt.dll…
相关文章:
- 从C++本机插件更新Vector3数组
- 使用CMake创建QML插件
- 停止cmake target_link_libraries将插件中静态库的两个对象文件链接到静态库本身
- 如何创建从Maya(或类似程序)到虚幻引擎的自定义数据导出插件
- clang 插件:在编译过程中修改 AST
- 实现动态插件管理器
- 我想通过带有C++和Python的插件创建一个可扩展的应用程序
- Agora.io 虚幻引擎插件构建错误
- 使用带有C++对象和标准库容器的插件系统
- 运行命令 "rosbag play example.bag" 时出错。找不到与插件 rosbag/NoEncryptor 对应的库
- 编译 llvm 插件时出现问题:llvm/Config/llvm-config.h:没有这样的文件或目录
- 通过 Gazebo 世界插件将静态对象附加到机器人链接
- 如何为模块化应用程序实现C++插件系统
- 'string'文件在带有C++文件的iOS插件上找不到
- 在 Android 上安装 GStreamer 插件
- 如何使用MSVC 2019创建和使用Qt 5.14.0自定义小工具插件
- 如何在 Windows 操作系统中在 geany 中安装插件
- 节点插件 API 将数组作为函数参数传递
- NSIS插件功能无法识别
- 在MSVS 2003/2005中构建时,NSIS插件在负载上退出