NSIS安装包调用C写的DLL问题

lchy110 2011-07-15 10:54:47
用NSIS做安装包的时候有碰到需要调用C写的动态库
动态库里有个函数原型:
int ConnectDB(char *szIP, char *szUser, char* szPassWord, char* szDB, char *szPort)

在NSIS里能调用到这个DLL 但参数获取不到,估计是参数是指针问题 有参考了这里的方法,但一直没成功

NSIS调用调用

  
strcpy $0 "172.18.14.13"
strcpy $1 "root"
strcpy $2 "root"
strcpy $3 "mysql"
strcpy $4 "3306"
System::Call 'VS2005MFCDll::ConnectDB(*i,*i,*i,*i,*i) i(.r0,.r1,.r2,.r3,.r4) .r8'


附:调用不是指针的函数能正确执行
...全文
312 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
见习学术士 2011-07-15
  • 打赏
  • 举报
回复
这个没用过,我一般都是将外模块写成EXE,再在NSIS调用
ExecWait,这个也是可以带参数的
你也可以换个思路
lchy110 2011-07-15
  • 打赏
  • 举报
回复
在NSIS里 不知道怎么去确定指针大小 貌似没那说法 呵呵 NSIS我也是刚学会用
呔妖怪来嘛 2011-07-15
  • 打赏
  • 举报
回复
指针大小不确定?
lchy110 2011-07-15
  • 打赏
  • 举报
回复
恩 谢谢楼上的 但这个估计没那么方便 因为我要调用这个DLL的几个方法

现在是只要用指针类型 C函数里获取到的就是乱码
包括NSIS安装包NSIS编辑器以及很全的NSIS常用插件: NSIS 的插件 需要配合 Nullsoft Scriptable Install System(NSIS专业安装包制作工具) 才能使用。 NSIS 中文版下载地址: http://www.52z.com/soft/5228.html Animate : Animate 插件 AnimGif : 在程序中添加 GIF 动画 Base64 : 编码或解码普通文本成 Base64 编码 Blowfish : Blowfish 算法插件 BrandingURL : 将BrandingText变成链接的插件 ButtonEvent : 响应任何页面控件事件的插件 Cabdll : 以CAB方式压缩dll文件的插件 CABSetup : CABSetup 插件 CDROM : 控制 CD-ROM 并可读取 CD-ROM 信息 ChangeRes : 调整屏幕分辨率、刷新率、色深,注意不可超出屏幕最大分辨率 Chngvrbl : 自定义NSIS默认临时文件夹插件 CRCCheck : 用于检查指定档案的CRC32数值 CryptoPlg : 用于加密指定档案的校验值(MD5/SHA1/MD2/MD4) CustomLicense : 自定义许可页面插件 Delay : 可以强制使某个按钮延时 X 秒后才能使用 Dialogs : 调用打开、保存文档框等命令 DumpLog : 记录安装日志插件 EBanner : EBanner 插件 EmbeddedLists : 使用INI+此插件可使NSIS显示列表视图和树视图控件 EnumCDs : 枚举CD驱动器插件 EnumINI : 枚举INI值插件 EventLog : 记录安装日志插件 ExDlg : 使用res资源文件建立自定义页面的插件 ExecCmd : 执行命令行插件 ExecDos : 执行dos批处理文件的插件 ExecTimeout : 限时执行程序的插件 Extractdll : 解压dl_文件为dll类型的插件 Extractdllex : 解压dl_文件为dll类型的插件(扩展版,使用lzma压缩) Fct : 能找到指定窗口并关闭的插件 FindProc : 进程查找插件 GetVersion : 获取Windows系统版本插件 HandleFileDragDrop : 使NSIS支持文件拖拉的插件 HelpButton : 帮助按钮插件 HwInfo : 硬件信息插件 Inetc : Internet连接插件 InetLoad : Internet连接 插件 InstallOptionsEx : InstallOptionsEx 自定义页面插件扩展版 Internet : Internet 插件 Ipdll : 查询本机IP插件 KillProcDLL : 进程结束插件 Linker : 在任何页面创建快捷方式插件 Locate : 列举文件夹目录树插件 LockedList : 能检测安装、卸载需要前需要关闭的程序。以便安装正常进行 LogEx : 安装日志控制插件扩展版 Marquee : 能创建滚动文本字幕的插件 Md5dll : Md5计算插件 MessageBox : 自定义对话框插件 Metadl : 网页Meta信息下载插件 MoreInfo : 获取程序文件版本信息的插件 MSSQL_OLEDB : MSSQL OLEDB 插件 Name2ip : 域名与IP转换插件 NewAdvSplash : 新式 AdvSplash 插件 NotifyIcon : 系统托盘图标插件 NSISArray : NSIS 数组插件 nsisDDE : NSIS DDE 插件 NSISList : NSIS 列表插件 nsisMultiMon : NSIS 多屏幕信息检测插件 nsisOS : NSIS 操作系统信息采集插件 NSISpcre : NSISpcre 插件 nsisStartMenu : 开始菜单记录插件 nsisUser : 测试 Windows 用户登录插件 NsisXiMoL : NsisXiMoL 插件 nsisXML : XML 支持插件 NsMCI : MCI方式读取音频CD信息插件 NsRandom : 随机数生成插件 nsRestartExplorer : 重启桌面进程 Explorer 的插件 NsSCM : Windows 服务控制管理插件 NsScreenshot : 屏幕截图插件 nsWeb : 内嵌网页插件 Nwizplugin : NSIS 向导插件 Nxs : 进程条插件 PassDialog : 密码框插件 RegBin : 二进制形式注册表插件 Registry : 注册表插件 Rfshdktp : 桌面刷新插件 Safer : 安全运行程序插件(Vista以上) ScrollLicense : 需要滚动许可页面到底部才能继续安装的插件 SelfDel : 删除自身插件 Services : Windows 服务插件 SfHelper : sourceforge开源网站下载镜像站点查询插件 Shelllnk : 显示快捷方式信息的插件 ShutdownAllow : 允许关机插件 SimpleBg : 建立一个简易安装背景的插件 SkinnedButton : 使用图片作为按钮的插件 SpiderBanner : 能创建一个像Windows复制文件那样的小型带进度条、退出按钮对话框的插件 Stack : 堆栈控制插件 SysRestore : 系统还原控制插件 tapihelp : 调制解调器modem控制插件 TCP : TCP连接创建插件 TextReplace : 文本替换插件 Time : 时间获取插件 ToggleInstFiles : 可以在安装页面(InstFiles)显示/隐藏安装日志框插件 Tooltips : 气球提示插件 TSFD : 文件选择、保存对话框插件 Unicode : 文本Unicode编码转换插件 UnTGZ : TGZ 解压插件 UserMgr : Windows用户控制插件(创建、修改用户) version : Windows版本获取插件 XML : XML 支持插件 XtInfoPlugin : 多种软件信息采集插件 新增插件: AnimGif plug-in--可以用来为安装页面上使用gif图片格式的插件,同时也支持静态bmp和jpeg格式 CDRom plug-in-- 开/关CD-ROM 舱门;获取CD-ROM 状态(准备好,尚未准备好);获取ready信息(卷标名,卷标数)查找系统中所 有CD-ROM (依靠Enumerate_CD-ROM_Drives 插件) GetVersion (Windows) plug-in--获取Windows版本信息的插件(名字,类型,版本,....) KillProcDLL plug-in-- 功能与KillProc类似,清除进程的插件,根据返回值来执行清除命令. Linker plug-in--一个来把label转化成一个超级链接的插件 LockedList plug-in--用来显示或取得选者被卸载或覆盖文件的锁定程序列表插件 NSISdl Smooth-- NSISdl plug-in的修改版本,增加了安装过程的平滑风格显示.与NSISdl的功能没有其他差别 NSISpcre plug-in-- Nsis 正则表达式使用的插件 Name2ip plugin--把主机名转换成IP 地址。 NsProcess plugin--通过名字查找/杀掉进程;通过指定的进程名杀掉所有进程,进程名不区分大小;支持 Win95/98/ME/NT/2000/XP ,插件大小仅为4KB. PassDialog plug-in--可以创建4种密码对话框的插件 用于创建用户名、密码或者序列号之类的验证是个错的选择。 ShutDown plug-in--一个注销,重启或关闭计算机的NSIS插件。, o% Y# d; G0 }) _5 p1 p5 O1 e ShutdownAllow plug-in--当安装程序运行时,这个插件允许Windows关闭或者注销。 SkinnedButton plug-in --这个插件允许在安装按钮上添加皮肤 Stack plug-in--这个NSIS插件可以操作NSIS堆或者私人堆 TextReplace plugin--文本替换插件9 X) l4 u$ i1 e Time plug-in--时间插件

1,649

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧