NSIS 检测安装路径是否含有中文

本文介绍了如何使用VS2010创建一个动态库DLL来检测NSIS安装路径中是否含有中文字符。通过在DLL中实现判断功能,并在NSIS脚本中调用该DLL,实现路径检查。详细步骤包括创建DLL项目、编写检测代码、导出函数以及在NSIS脚本中调用DLL。
摘要由CSDN通过智能技术生成

问题描述

因为工作的需要,最近学习用NSIS来打包软件。因为考虑到软件的安装路径如果包含中文,会影响到软件里面数据库的运行,所以需要在安装软件时,检测安装路径是否包含中文。

步骤概括

  1. VS2010编写检测中文的.dll文件 。因为NSIS对string类型操作有限,实现起来比较麻烦,换用VS写个动态库的方式比较方便(大佬不喜勿喷,欢迎分享);
  2. 在NSIS脚本中调用.dll 。把安装路径传入.dll做判断,并返回结果到脚本;

注意:步骤比较简单,细节比较多,看了N篇博文,总结出来的方法,请看下去哦!


详细步骤

一. VS2010编写检测中文的.dll文件

我用VS2010中的是MFC DLL模板(本来是准备在.dll中做一个messagebox,但是后来做在了NSIS脚本里面)。
1.项目目录:

在这里插入图片描述
先上图。我把项目命名为NSIS_dll,DLL的类型选择为使用共享MFC DLL的规则DLL(至于为什么选择这个,大家可以自己百度下区别)。创建成功后项目自带 “NSIS_dll.h”、“Resource.h”、“stdafx.h”、“NSIS_dll.cpp”、“NSIS_dll.def”、“stdafx.cpp”。而另外的 “api.h”、“nsis_tchar.h”、“pluginapi.h"三个文件,需要到你安装的NSIS文件下的Examples\Plugin\nsis中寻找到,并添加到项目头文件里。添加方法:右键头文件---->添加---->现有项。

注意:添加这三个头文件是必须的,要不然会在编译时报出寻找不到插件的错误!相当于NSIS提供的一个自定义插件模板吧。

然后在源文件“NSIS_dll.cpp”中把三个头文件包含进去

#include "api.h"
#include "nsis_tchar.h"
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值