版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处http://xinyistudio.vicp.net/和作者信息及本声明
原因
――――――――――――――――――――――――――――――――
最近,在写InstallShield6.x的脚本时给我带来了一些问题,在验证用户输入的序列号过程中,需要比较输入的字符串,InstallShield6.x在对字符串比较的时候是不区分大小写的(即大小写不敏感),因而,无法判断用户的输入是否合法,相信有许多人也遇到过这样的问题。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
解决
――――――――――――――――――――――――――――――――
引用DLL中的某个函数来验证用户的输入是否合法,要说明的是这里生成的DLL是基于C++或C语言编译,在这里我采用了VC++作为DLL的开发环境。基本的思路:编写由InstallShield调用的DLL,名称StrCompare.dll,要导出的函数名称StrComp,用StrComp对两个字符串中的对应字符进行比较,并区分字符的大小写。StrComp代码如下:
_declspec(dllexport) BOOL APIENTRY StrComp(HWND hWnd, LPSTR str1, LPSTR str2)
{
if ( hWnd == NULL || str1 == NULL || str2 == NULL )
{
MessageBox(NULL, "输入参数错误!", "错误信息", MB_OK|MB_ICONERROR);
return FALSE;
}
if ( strcmp(str1, str2) == ERROR_SUCCESS ) // strcmp可以区分大小写字符
return TRUE;
MessageBox(hWnd, "序列号错误,原因可能是大小写错误!", "警告", MB_OK|MB_ICONWARNING);
return FALSE;
}
请注意,函数的开头我使用了_declspec(dllexport)(请查阅MSDN)作为函数转出声明,因此,还必需使用与DLL文件同名的StrCompare.def文件,文件内容如下:
; StrCompare.def : Declares the module parameters for the DLL.
LIBRARY "StrCompare"
DESCRIPTION 'StrCompare Windows Dynamic Link Library'
EXPORTS
; Explicit exports can go here
StrComp
把这个文件加入工程中后参与编译,这会禁止编译器将导出的函数以数字的形式输出(不同的C++编译器会将导出的函数以不同的形式输出)。这个步骤很重要,如果你不使用StrCompare.def文件,导出的StrComp函数名称无法被InstallShield识别,这个导出的函数看起来像这样:?StrComp@@YGHPAUHWND__@@PAD1@Z,
按上面步骤导出的函数StrComp是能让InstallShield识别的合法函数。在InstallShield脚本中使用UseDLL("StrCmpare.dll")动态加载StrCmpare.dll,最后调用导出的函数StrComp,使用这个函数对两个字符串中的对应字符进行比较,并区分字符的大小写。
分享到:
相关推荐
《InstallShield6.x安装程序设计与制作》是针对软件开发者,尤其是使用DELPHI语言的开发者,提供的一本详尽的指南,旨在帮助他们掌握利用InstallShield工具创建专业级安装程序的技术。InstallShield是一款广泛使用的...
《引人入胜Installshield6.x 安装程序设计与制作》是一本深入探讨InstallShield 6.x安装程序创建的专业书籍,它旨在帮助开发者和系统管理员掌握如何利用这个强大的工具来构建高效、用户友好的软件安装包。...
引人入胜Installshield6.x 安装程序设计与制作.pdf
总结来说,使用InstallShield6.x制作VB安装程序涉及项目创建、文件添加、路径配置、注册表操作、依赖处理、权限设置以及自定义脚本等多个环节。尽管这个版本相对老旧,但其基本流程和原理仍适用于现代的安装程序制作...
InstallShield Pro V6.x多语言支持包, Serial: ISCSL8-0100-9995912909 <br>InstallShield Pro V6.x多语言支持包, Serial: ISCSL8-0100-9995912909
下载我发布的InstallShield教程.rar.001,InstallShield教程.rar.002,InstallShield教程.rar.003-- <br>合并批处理文件Link到文件夹下面.然后双击InstallShield教程.rar.003--合并批处理文件Link即可合并 <br>...
下载我发布的InstallShield教程.rar.001,InstallShield教程.rar.002,InstallShield教程.rar.003-- <br>合并批处理文件Link到文件夹下面.然后双击InstallShield教程.rar.003--合并批处理文件Link即可合并 <br>...
本文将深入探讨如何使用InstallShield这一强大的安装制作工具,来为Microsoft Visual C++ 6(以下简称VC6)应用程序创建专业且用户友好的安装包。 InstallShield是一款业界领先的安装制作软件,它能够帮助开发者...
软件安装工具 InstallShield.2010.Premier.v16
InstallShield的核心功能在于创建Windows安装程序,它允许开发者将他们的应用程序打包成易于分发和安装的格式。3.0.115版强调了对多种安装平台的支持,包括从传统的单用户桌面应用到复杂的网络和企业级解决方案。这...
InstallShield6是一款经典的安装制作软件,它在IT行业中广泛用于创建Windows应用程序的安装包。本教程旨在帮助用户了解如何使用InstallShield6来构建安装程序,以及如何利用CHM(Compiled HTML Help)格式的文档进行...
可能包含的脚本语言是InstallScript,它是InstallShield特有的,支持条件语句、循环、函数调用等编程元素。通过脚本,你可以控制安装过程的每一个细节,如安装前后的自定义操作、安装进度的显示、用户交互的处理等。...
《InstallShield ODF教程.CHM教程 函数库》是一份针对软件安装开发的专业教程,主要聚焦于使用InstallShield工具创建和管理安装项目。InstallShield是一款广泛使用的安装制作软件,它允许开发者创建专业级别的...
InstallShield是一款广泛应用于软件安装包制作的工具,它允许开发者创建专业的Windows安装程序,以便用户能够轻松地在计算机上安装和卸载软件。这个“InstallShield教程.zip”压缩包很可能包含一系列教学材料,帮助...
InstallShield 2019提供了全面的安装项目创建能力,涵盖了从简单的桌面应用到复杂的服务器产品。它支持多种安装类型,包括 MSI、EXE、Virtualization、App-V等,能够满足不同场景下的需求。此外,该工具还具备强大的...
《使用InstallShield 2015 Limited Edition为Visual Studio 2012创建C#安装包》 在软件开发过程中,生成安装包是发布产品的重要环节。Visual Studio 2012虽然是一款强大的开发环境,但默认并不包含内置的安装包生成...
InstallShield Express 2.12的主要功能包括创建安装向导、管理安装项目、定制用户界面、支持多种安装类型(如单用户、多用户、网络等)、处理文件关联和注册表项、生成自解压文件等。这些功能使得开发者能够根据需求...
[InstallShield.12.豪华完全版附注册机
例如,假设我们要打包一个系统,它包含ISsample.exe、ISsample.dll、ISsample.chm和ISsample.ini文件,还需要ISsample_sys.dll动态库和VC6运行库。ISsample.chm是可选安装的。下面是创建安装包的步骤: 1. **启动...