自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 NSIS WIN7超级任务栏

NSIS打包,发现  StrCmp $FastIconState "1" "" +2 CreateShortCut "$QUICKLAUNCH\${NAME_CHINESE}.lnk" "$INSTDIR\XMusic.exe"仅在XP下有效,WIN7下无效原来XP和WIN7快速启动栏放的位置不一样XP 下是在X:\Users\\AppData\Roaming\Microsof

2013-04-24 18:14:38 4156 3

转载 explicit的作用

关键字explicit可以禁止“单参数构造函数”被用于自动类型转换class Stack{ explicit Stack(int size);};没有explicit的话Stack s = 40;能编译通过而有explicit则不能,必需Stack s(40); 阻止编译器执行非预期的类型转换

2012-05-14 16:23:08 457

原创 工程弹掉,会弹出一个实时调试框

工程弹掉,会弹出一个实时调试框,造成程序不能自动重新启动。可以在VS里关掉这个设置。Tools--Options--DeBugging--Just in time,关掉即可 开始--运行--Regedit删除注册表以下键值HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debug

2012-04-01 16:32:34 492

原创 高级定时器的使用

UINT   TimerScanStart(LPTIMECALLBACK   fptc,int   TimeCycle,BOOL   bTime_OneShot) { UINT   TimeID   =   0; TIMECAPS   tc; if(::timeGetDevCaps(&tc,sizeof(TIMECAPS))==TIMERR_NOERROR) { DWORD

2012-03-13 10:15:07 561

原创 int 和 unsigned

int 类型和unsigned类型做算术运算,返回值虽然是负值,但因unsigned的存在,依然当做无符号值来处理。

2012-03-11 16:08:10 433

原创 纯虚函数

纯虚函数在派生类里必须实例化,不然派生类对象使用时失败。

2012-03-06 14:42:26 293

原创 SHFileOperation函数

在Windows的shellapi文件中定义了一个名为SHFileOperation()的外壳函数,用它可以实现各种文件操作,如文件的拷贝、删除、移动等,该函数使用起来非常简单,它只有一个指向SHFILEOPSTRUCT结构的参数。使用SHFileOperation()函数时只要填写该专用结构--SHFILEOPSTRUCT,告诉Windows执行什么样的操作,以及其它重要信息就行了。SHFile

2011-12-15 13:22:14 641

原创 _tcscat_s遇到的问题

在改BUG的时候,使用了_tcscat_s,而工程竟然跑不起来了,当时使用如下:_tcscat_s(log_name.GetBuffer(), MAX_PATH, _T("log\\import.log")); 问题就出在了log_name.GetBuffer(), 把内存的长度定了,在连接就写出内存了,然后的情况就清楚了。。。

2011-12-08 10:11:55 3837

转载 编译完成的工程在WIN7或者VISTA下自动使用管理员权限运行

方法1Vista/Win7使用UAC加强了权限管理,一些程序需要用户指明管理员权限才能正常运行。那么如何让一个程序默认就是以管理员方式运行呢?答案是Manifest.步骤如下:1. 在工程中新建一个文件,例如mani.xml。其内容为requireAdministrator" uiAccess="false" />蓝色的一

2011-12-05 10:56:46 1927

原创 获取特殊的系统的目录

HRESULT SHGetFolderPath(          HWND hwndOwner,    int nFolder,    HANDLE hToken,    DWORD dwFlags,    LPTSTR pszPath); 其实

2011-10-17 15:25:35 420

转载 select 模型初解

select 的作用防止在在阻塞模式的套接字里被锁死,避免在非阻塞套接字里重复检查WSAEWOULDBLOCK错误。1:select模型(选择模型)先看一下下面的这句代码:int iResult = recv(s, buffer,1024);这是用来接

2011-09-06 13:50:28 293

转载 SendMessage与PostMessage的区别

PostMessage将消息放入消息队列后马上返回,而SendMessage直到窗口过程处理完消息后才返回

2011-07-29 15:45:44 276

原创 Installshield 打包工具弹Update Manager框解决方法

Update Manager是用来为Applications Manager安装服务包 (.ppm 文件)的工具。服务包也许会包括软件错误对应和新加特点等。 无用的东西建议删除。 一 开始菜单-运行-输入msconfig回车 在里边的启动栏里把**.dll前面的勾去掉就行了 1、开始——运行——msconfig——启动——把加载项***.dll的那个勾勾去掉。 重启电脑,通常到这就可以了,如果还弹

2011-06-16 15:46:00 992

原创 SHGetPathFromIDList函数

      SHGetPathFromIDList   功能是把项目标志符列表转换为文档系统路径:   BOOL SHGetPathFromIDList(   LPCITEMIDLIST pidl,   LPSTR pszPath   );   参数:   pidl---相对 namespace 的根指定一个文档或目录地点的一张项目标识符表的地址 ( 桌面 ) ;

2011-06-13 17:34:00 8861 1

原创 变量的申请细节

在同一个程序里,相同变量的类型尽量要统一,特别是那种相互赋值的变量。例如:CString类对象有3种,MFC::CString,WTL::CString,ATL::CString,也许在自己的机器上没问题,因用户的环境版本多样子,会抛出不必要的错误。

2011-06-09 10:54:00 706

转载 CString::MakeLower() 崩溃问题

     shark发布了新版本,陆续收到了>10份的崩溃日志,查看dmp文件,问题出在了s_suffix.MakeLower();(ATL::CString s_suffix;),百思不得其解,求助于google,有位老兄的解释如下,让我豁然开朗。      一个程序CString::MakeLower() 总是崩溃,开始以为是多线程问题,但是检查后全是局部变量,不存在跨线程后来发现原来是:字符串中有二进制数据,也就是说字符串中有既不是中文也不是英文也不是标点符号的而且不为零的数据,来源于一段二进制数据。

2011-05-31 11:26:00 2481 1

原创 c++ 容器类概括性介绍(转)

<br />C++中的容器类包括“顺序存储结构”和“关联存储结构”,前者包括vector,list,deque等;后者包括set,map,multiset,multimap等。<br />若需要存储的元素数在编译器间就可以确定,可以使用数组来存储,否则,就需要用到容器类了。 <br /><br />1、vector<br />    连续存储结构,每个元素是在内存上是连续的;<br />    支持高效的随机访问和在尾端插入/删除操作,但其他位置的插入/删除操作效率低下;<br />2、deque<br /

2011-05-30 16:36:00 353

原创 windows phone 7从0开始

<br />       忽然发现windows phone 7做到很不错,并和诺基亚强强联手后会有作为。又毫不犹豫地投入了微软的怀抱,可恶的资本主义花招啊,废话不说。<br /> <br />       windows phone 7(WP7)开发环境搭建<br /><br />       WP7开发环境目前只支持Windows 7和Vista,没办法只能马上动手格一个盘做一个双系统,当然是win7,你懂得!<br />怎么安装win7就不罗嗦了。<br /> <br />      1. Windo

2011-02-19 23:06:00 490

转载 运行安装程序时发生(-5004 : 0x8002802b错误)

<br />解决办法有几个你试一下<br />1 删除C:/Program Files/Common Files/InstallShield文件,重新安装<br />或删除C:/Program Files/Common Files/InstallShield/Professional文件,重新安装<br />2 重命名C:/Program Files/Common Files/InstallShield/Professional/RunTime" 为 "RunTimebak".<br />或重命名C:/Pr

2011-01-12 09:31:00 6239 2

转载 Installshield 在安装过程中发生 错误代码:-5009等解决方法

<br />解决办法:<br />方法1:打开路径:C:/Program Files/Common Files/,删除或重命名其中的InstallShield文件夹<br />方法2:删除或重命名C:/Program Files/Common Files/InstallShield/Professional/RunTime/IsProBE.tlb文件

2010-12-28 17:23:00 3433

转载 Installshield 在安装过程中发生 错误代码:-6001 -6003 -6002 -6004 -6005 -6006等解决方法

<br />为何会出现这样的问题:<br /><br />      大多是在程序安装过程中,出现电脑重起,死机,蓝屏等,也就是在程序安装中途,计算机因硬件或者软件导致的非法重起,死机,蓝屏等.在第二次进入系统后,再次安装该程序就会出现上述错误.<br /><br />      非法关机后,导致部分的临时文件夹及安装文件在InstallShield下产生,在次安装的时候,则不能覆盖,需要清空nstallShield下安装前的临时文件及安装文件 .如果则在次安装的时候则会出现产生临时文件及安装文件,以导致冲

2010-12-09 10:03:00 13406 1

原创 安装或者卸载时检测软件是否在运行

      在测试期间偶然遇到一个问题,有时卸载不干净,及时强制删除也不行,经过多次测试终于发现原来是程序没退出造成。先前的一个版本是调用IS自带API FindWindow实现的,而现在情况是,程序运行时间长窗口销毁了而进程却在(当然这也是程序本身的问题,但遇到此问题不得不想办法解决),方案只有一个枚举进程,看进程是否还在来判断软件是否退出,当然这也有一个问题,如果有相同进程名字的程序存在就会出问题。      在请教了几位朋友后,得到的答复是加载外部API来枚举进程进而获取进程名,IS帮助给的代码如下:

2010-11-23 10:49:00 1343

原创 Installshield 非系统管理员安装

<br />       一般情况下非系统管理员权限是不允许安装的,因为写注册表和拷贝到系统目录下文件受限。如果在打包时不做管理的话,Installshield 是不会自己处理的,往往造成安装失败。下边的代码可以有效的解决问题。<br /> <br />         if (!MAINTENANCE) then   <br />     if (!SYSINFO.WINNT.bAdmin_Logged_On)then <br />        SetDialogTitle ( DLG_MSG_INFO

2010-11-22 14:07:00 1525

转载 关于Installshield里一些常见问题的解答

<br />Q: 如何替换setup.exe的图标? <br />A: 这不是一个推荐的操作,因为可能会引起不可预见的错误,而且IS没有开放这个接口。如果你坚持要这么做,可以使用第三方软件比如ExeScope来进行图标替换。 <br />Q: 如何去掉安装界面左上方的Installshield Wizard字样? <br />A: Installation Designer -> Installation Information -> General Information -> String Tables

2010-11-22 13:59:00 1401

转载 一个完整的Installshield安装程序实例 --补遗

<br />第三部分:其他 <br />1. 修改显示界面的风格 <br />Installshield 原始安装界面我始终觉得很丑,幸好Installscript 是可以不用写代码就可以改界面风格的。 <br />在 Installation Designer 的左边导航树上找到User Interface | Dialogs<br /><br />在中间的导航树上找到 Dialogs | Skins<br /><br />Skins 选项下面显示了不同的界面风格,默认是None,选择一个喜好的风格即可,

2010-11-22 13:57:00 723

转载 一个完整的Installshield安装程序实例 --高级设置二

<br /><br />4. 根据用户选择的组件,从外部文件夹拷贝相应的文件到安装目标路径的文件夹中<br />这个用途常见于配置文件和授权文件的应用,同一程序,授权给不同的用户,只需要不同的配置和授权文件。如果将配置和授权文件每次都打包在安装程序里,那么变更一个用户就需要重新打包一次,这是一个浪费时间和精力的行为。如果将授权和配置文件(当然内容是加密过的)放在外部文件夹中,每次安装的时候从这个文件夹中读取拷贝,那么会是一个比较通用型的安装程序。<br />另外,本程序的好几个feature用到了相同的库,

2010-11-19 13:21:00 1500

转载 一个完整的Installshield安装程序实例 --高级设置一

<br />第二部分:脚本编程<br />在开始进行编程前,我们先明确一下我们要用编程来弥补前面设置的哪些功能的不足<br />1. 显示软件许可协议<br />2. 判断是否安装了本软件所需要的先决软件JKD1.6.0_04,如无,则启动外部安装程序进行安装(同样原理可以用来判断是否安装了其他软件,只要该软件在注册表中有键值)<br />3. 用户的输入信息、所选安装路径、所选安装组件将显示在安装界面上(Installshield虽然自带了此界面,但是默认是显示为空的,需要写脚本来显示信息)<br />4

2010-11-19 13:14:00 2167 1

转载 一个完整的Installshield安装程序实例—---基本设置二

7. 点击引导条上的Application Files我们将在这里对安装路径进行微调,并且为每个Feature指定需要安装的文件这里我不想使用Program Files | Company Name | Product Name这个路径,我想使用Program Files | Product Name,我直接点击选中My Product Name[INSTALLDIR]拖动到ProgramFileFolder下,还可以直接将My Product Name 改成自己想要的文件夹名字接下来,为每个Feature

2010-11-19 13:11:00 3480 1

转载 一个完整的Installshield安装程序实例—---基本设置一

<br />一个完整的IS安装程序实例,皆来自海洋女神博客<br /> <br /><br />正文<br />需求:公司做了一个软件产品,<br />1.         该软件运行需要JDK环境(不是JRE,因为该软件要向windows注册一个服务,用到了JavaService,JDK才支持这个功能;不过这里侧重于判断是否安装了某软件是否安装,而不是纠缠于该装JDK还是该装JRE);<br />2.         由于是Server-Client形式的,需要允许用户选择安装组件,比如A机只装Serve

2010-11-19 12:59:00 3132

转载 InstallShield 工程简介及选择

<br />     刚到一家新公司,遇到的第一个问题就是IS打包,因以前接触甚少搞的一头雾水,幸亏得到了Kevin和海洋女神的帮助,才得以化险为夷,在此表示感谢!。<br />     <br /><br />熟悉InstallShield用户清楚有Basic MSI,InstallScript和InstallScript MSI三种工程类型可选择,如果你初次使用InstallShield,你可能面临一个问题,哪一种工程类型适合你?有些InstallShield使用很久的开发人员,也可能依然存在这样的疑惑

2010-11-19 12:51:00 1079 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除