MFC/VS2010
bingqingsuimeng
这个作者很懒,什么都没留下…
展开
-
Inno Setup入门(十六)——Inno Setup类参考(2)
这里将接着在前面的基础上介绍如何在自定义页面上添加按钮。按钮属于Tbutton类,该类继承自TbuttonControl,类定义如下:TButton = class(TButtonControl)property Cancel: Boolean; read write;property Caption: String; read write;property Default: Bo转载 2017-11-02 14:06:44 · 520 阅读 · 0 评论 -
Inno Setup入门(六)——在程序目录下创建文件夹
创建文件夹可以使用[dirs]段实现,代码如下:[setup];全局设置,本段必须AppName=TestAppVerName=TESTDefaultDirName="E:\TEST"AppVersion=1.0[files]Source: "F:\desktop\test\ipmsg.exe"; DestDir: "{app}";Source:转载 2017-11-01 15:09:01 · 1720 阅读 · 0 评论 -
Inno Setup入门(五)——添加readme文件
这个实现起来很简单,就是在[files]段中的某个预先作为readme的文件后面添加标志位isreadme:[setup];全局设置,本段必须AppName=TestAppVerName=TESTDefaultDirName="E:\TEST"AppVersion=1.0 [files]Source: "F:\desktop\test\ipmsg转载 2017-11-01 15:02:40 · 559 阅读 · 0 评论 -
Inno Setup入门(四)——为程序创建桌面快捷方式
Icons这一可选段定义所有创建在开始菜单和\或其它位置 (比如桌面) 的快捷方式。一个例子如下:[setup];全局设置,本段必须AppName=TestAppVerName=TESTDefaultDirName="E:\TEST"AppVersion=1.0[files]Source: "F:\desktop\ipmsg.exe"; DestDi转载 2017-11-01 14:53:05 · 2340 阅读 · 0 评论 -
Inno Setup入门(三)——指定压缩方式
Setup段中的compression指定了采用的压缩方式,较高的压缩率需要较多的时间或者需要更大的内存空间,可用的值如下:zipzip/1到zip/9bzipbzip/1 到bzip/9lzmalzma/fastlzma/normallzma/maxlzma/ultralzma/ultra64lzma2lzma2/fastlzma2/norma转载 2017-11-01 14:51:02 · 984 阅读 · 0 评论 -
Inno Setup入门(二)——修改安装过程中的图片
修改安装过程中的图片一般编译之后,安装过程中出现在左边图片是是下图这个样子的: 其实也可以修改它,只需要在setup段中作一点稍微的修改,加一行代码即可:[setup]AppName=TestAppVerName=TESTDefaultDirName="E:\TEST"AppVersion=1.0WizardImageFile=dh.bm转载 2017-11-01 14:32:11 · 1909 阅读 · 0 评论 -
Inno Setup入门(一)——最简单的安装脚本
一个最简单的安装脚本:1.最简单的安装文件脚本:[setup]AppName=TestAppVerName=TESTDefaultDirName="E:\TEST"AppVersion=1.0[files]Source: "F:\desktop\ipmsg.exe"; DestDir: "{app}"编译完成后在脚本文件所在的目录转载 2017-11-01 14:29:02 · 1801 阅读 · 0 评论 -
.bat脚本基本命令语法
目录批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2、ECHO 和 @ 3、PAUSE 4、ERRORLEVEL 5、TITLE 6、COLOR 7、mode 配置系统设备 8、GOTO 和 : 9、FIND 10、START 1转载 2017-11-01 13:46:40 · 2695 阅读 · 0 评论 -
OpenCV学习笔记(一)——OpenCV3.1.0+VS2015开发环境配置
摘要: 由于最近AR(增强现实)这个概念非常火爆,各种基于AR的应用及游戏逐渐面向大众,而在AR中最重要的两个技术就是跟踪识别和增强渲染,其中跟踪识别是通过OpenCV这个开源的计算机视觉库来实现的,所以我就想着研究一下这个库,这里是个人的学习笔记,不是什么权威的教程,如果你们有错误也麻烦帮我指出哈。======================================转载 2017-10-30 10:31:03 · 1875 阅读 · 0 评论 -
win7+VS2008安装boost
找了好久boost的安装教程,杂七杂八的方法有很多,说直接下载boost安装包installer,但是boostpro.com貌似挂了...所以最后还是得自己上阵,重新编译,方法综合了几个,最后终于搞定了(某些细节部分也是自己尝试成功,也有相应说明)。 首先要下载boost包,我下载的版本是boost_1_57_0.zip,下载完之后放在你想安装的安装路径下。1.boost安转载 2017-09-27 15:47:07 · 312 阅读 · 0 评论 -
Inno Setup入门(七)——提供安装语言选项
Inno Setup安装目录下有一个Languages的文件夹,该文件夹提供了可供使用的语言,通过在脚本中加入[languages]段,可以实现该项功能,实现代码如下:[setup];全局设置,本段必须AppName=TestAppVerName=TESTDefaultDirName="E:\TEST"AppVersion=1.0Compression=转载 2017-11-01 15:10:34 · 1568 阅读 · 0 评论 -
Inno Setup入门(八)——有选择性的安装文件
这主要使用[Components]段实现,一个演示的代码如下:[setup];全局设置,本段必须AppName=TestAppVerName=TESTDefaultDirName="E:\TEST"AppVersion=1.0Compression=lzma2/maxShowLanguageDialog=yes [Components]N转载 2017-11-01 15:14:36 · 1223 阅读 · 0 评论 -
Inno Setup入门(十五)——Inno Setup类参考(1)
Inno setup脚本能够支持许多的类,这些类使得安装程序的功能得到很大的加强,通过对这些类的使用,将会创建出许多让人惊奇的安装程序,下面开始类的学习。创建自定义向导页自定义向导页需要在InitializeWizard事件函数中创建,通过使用CreateCustomPage函数创建一个空的页面,或者使用CreateInput...Page和CreateOutput...Page等函数创建转载 2017-11-02 14:04:11 · 694 阅读 · 0 评论 -
Inno Setup入门(十四)——替换安装程序和卸载程序的图标
通常Inno生成的安装文件的图标是一个光盘和显示器,如下图。同时,程序安装好之后,在安装目录下的卸载程序的图标也是一样的,其实我们也可以自己修改。首先生成的安装文件图标。这个比较简单,只需要在Setup段中添加相应的语句即可:SetupIconFile=jiong.ico该语句指定了输出文件的图标,注意如果图标不是和脚本在同一目录下的话,需要转载 2017-11-02 13:57:19 · 2798 阅读 · 0 评论 -
Inno Setup入门(十三)——Pascal脚本(2)
事件函数(2)function CheckPassword(Password: String): Boolean;如果安装程序在Pascal 脚本中发现该函数,它自动显示密码页并调用CheckPassword检查密码。返回True 表示接受密码,返回False拒绝。测试代码如下:function CheckPassword(Password: String): Bool转载 2017-11-02 13:56:30 · 794 阅读 · 0 评论 -
Inno Setup入门(十二)——Pascal脚本(1)
事件函数(1)Inno Setup支持以下函数和过程。function InitializeSetup(): Boolean;该函数在安装程序初始化时调用,返回False 将中断安装,True则继续安装,测试代码如下:function InitializeSetup(): Boolean;beginResult := MsgBox('安装程序正在初始化,你确转载 2017-11-02 13:54:15 · 2505 阅读 · 0 评论 -
Inno Setup入门(十一)——完成安装后执行某些程序
有些时候我们的程序虽然能够很好的完成安装,但是程序的配置工作可能需要其他的一些程序来辅助完成,如果不执行这些程序,主程序就不能很好的完成工作,甚至不能完成工作,一个很明显的例子是,目前许多程序是通过NET技术开发的,这就要求计算机上必须安装有.net Framework,否则主程序运行不了,只有预先安装了NET Framework后主程序才能得以运行。这个时候可以通过Run段,指定程序完成安装后、转载 2017-11-02 13:47:10 · 6417 阅读 · 0 评论 -
Inno Setup入门(十)——操作注册表
有些程序需要随系统启动,或者需要建立某些文件关联等问题,这些都是通过在安装程序中对注册表进行操作的结果。Inno Setup中通过[registry]段实现对注册表的操作。本段说明:参数列表:参数说明Root根键。必须是下列中的一个:HKCR (HKEY_CLASSES_ROOT)HKCU (HKEY_CURRENT_转载 2017-11-02 13:40:47 · 1883 阅读 · 0 评论 -
Inno Setup入门(九)——修改安装过程中的文字显示
前面说到过可以使用不用的语言文件实现不同的显示方式,方便与国际接轨,事实上即使没有语言文件也可以实现修改。[Messages] 段用于定义安装程序和卸载程序中显示的消息。一般不需要创建 [Messages] 段,因为所有的消息在Inno Setup的Default.isl文件 (或在[Languages] 段指定的语言选项) 中已经包含。但是可以通过覆盖默认的消息,打造自己的消息显示界面。打开In转载 2017-11-02 13:38:38 · 686 阅读 · 0 评论 -
Inno Setup使用进阶(一)
说明:本文用的Inno Setup的版本是5.1.8。示例程序位于Inno Setup V5.18安装目录"Examples目录下。本文对笔者转载的一篇文章《Inno Setup使用教程》根据笔者实际工作中用到的东西进行缩减和修改而成。一.介绍Inno Setup是一个开源免费的安装程序制作工作。安装程序是以脚本的方式创建的,其扩展名为.iss(Inno Setup Script)。转载 2017-11-01 14:27:30 · 5212 阅读 · 0 评论 -
日期计算代码(1):计算当前时间前后N天
C语言计算当前时间前后N天可以借助库函数提供的函数,先获取当前时间从1970年开始累计的秒数,再加减N天对应的秒数,最后将秒数还原年月日时间,具体代码如下。#inlcude int main(int argc, char* argv[]){ time_t lt; lt = time(NULL); long seconds = 24 * 3600 * 20;//24 小时 * 小时秒 *转载 2017-07-28 09:30:09 · 3757 阅读 · 0 评论 -
vs2008 添加控件变量关联右击控件添加变量是灰色的原因
原因:1.没有为对话框创建类 2.创建类了,创建完后又修改了对话框ID,resource.h里面你会发现新老ID被定义为同一个数字,但类里面// 对话框数据 enum { IDD = IDD_DLG_QSSIM };用的还是老ID,和对话框新ID不一致, 因此添加变量按钮为灰色转载 2017-07-28 09:29:07 · 994 阅读 · 0 评论 -
vs2008的toolbox全部变灰色
网上看到的一个解决方法: 解决办法:1. 在vs的工具箱上重置一工具箱 (试过,失败!) 2. 在vs上 工具-导入导出设置-重置所有设置(试过,失败!) 3. 重置vs窗口布局(试过,失败!) 4. 重新修复了vs2005 (试过,失败!) 5. 开始-运行-输入(%USERPROFILE%/Loca转载 2017-07-28 09:28:25 · 1133 阅读 · 0 评论 -
《Windows核心编程》---Interlocked原子访问系列函数
所谓原子访问,指的是一个线程在访问某个资源的同时能够保证没有其他线程会在同一时刻访问同一资源。Interlocked系列函数提供了这样的操作。所有这些函数会以原子方式来操控一个值。Interlocked函数的工作原理取决于代码运行的CPU平台,如果是x86系列CPU,那么Interlocked函数会在总线上维持一个硬件信号,这个信号会阻止其他CPU访问同一个内存地址。我们必须确保传给这些函数的转载 2017-06-20 14:44:59 · 364 阅读 · 0 评论 -
window下使用SetUnhandledExceptionFilter捕获让程序的崩溃
简单使用SetUnhandledExceptionFilter()函数让程序优雅崩溃虽然是大公司的产品,QQ它还是会在我们的折腾下崩溃的,但是它总是崩溃的很优雅,还要弹出自己的对话框来结束。并且发送报告,去掉了系统默认的发送报告的对话框。所以一拍脑袋,想让自己的程序崩溃的体面一点。自己想了大概的思路,觉得可以用一个进程来监控目标程序。的确也可以拿到了目标程序崩溃的信息,知道它什么时候崩转载 2017-06-20 13:43:22 · 11009 阅读 · 0 评论 -
MAKEWORD(2,2)使用
大凡在WIN32平台上的WINSOCK编程都要经过下列步骤: 定义变量->获得WINDOCK版本->加载WINSOCK库->初始化->创建套接字->设置套接字选项->关闭套接字->卸载WINSOCK库->释放资源 下面介绍WINSOCK C/S的建立过程: 服务器 客户端_________________转载 2017-06-20 13:42:40 · 1494 阅读 · 0 评论 -
multiMap遍历方法
1 /* 2 multimap中的三种遍历方法 3 multimap中如果没有查找到相应元素,则返回的迭代器是依据该元素的排列顺序该键应该插入的位置 4 如果找不到,则方法一和方法二返回的两个迭代器应该相等 5 */ 6 #include 7 #include 8 #include string> 9 #include 10 11 using nam转载 2017-06-20 09:32:27 · 1455 阅读 · 0 评论 -
C++中的pair,make_pair学习
std::pair主要的作用是将两个数据组合成一个数据,两个数据可以是同一类型或者不同类型。例如std::pair或者std::pair等。pair实质上是一个结构体,其主要的两个成员变量是first和second,这两个变量可以直接使用。初始化一个pair可以使用构造函数,也可以使用std::make_pair函数,make_pair函数的定义如下:template pair make_pa转载 2017-06-20 09:18:34 · 3277 阅读 · 0 评论 -
Inno Setup入门实例教程 Inno Setup打包工具新手教程(图文)
程序员们都知道Inno Setup是一个简单易用而功能强大的安装向导制作软件,关于Inno Setup的使用教程,可以说超级简单,但又超级深奥,如果您是入门用户,只需要看下边的教程就可以了,但是Inno Setup功能强大到你无法想象,因此需要很久的时间去学习和研究,不说废话,我们介绍一下Inno Setup入门教程!软件名称:免费的安装制作软件 Inno Setup V5.5.4 汉化优转载 2017-06-29 10:49:11 · 1157 阅读 · 0 评论 -
完成端口模型IOCP详解 (一)
IOCP实现步骤 如果懂得了IOCP的工作原理,它实现起来是很简单的。它的实现步骤如下:1. 创建好IOCP2. 创建Socket(socket可以是由Accept得到)3. 将Socket关联到IOCP4. socket向IOCP提交各种所需请求5. IOCP操作完成之后将结果返回给socket6. 重复步骤3和4,直到soc转载 2017-06-19 16:16:11 · 686 阅读 · 0 评论 -
MFC中popup、child、overlapped对话框的区别
overlapped window,从窗口关系的角度,可独立存在。child窗口,依附于parentwindow窗口,随parentwindow存在而存在,显示在parent内部Popup窗口,弹出窗口,依附于parentwindow窗口,随parentwindow存在而存在, 相对于parentwindow位置可超过边界。overlapped 是一个 MFC转载 2017-05-25 10:31:18 · 1605 阅读 · 1 评论 -
VS2008中MFC界面编程Caption中文全是乱码的解决办法
在预览状态下可能看到中文,但是编译运行后对话框中的中文全是问号。即使你用的VS中文版,即使你也用了Unicode编码,即使有条件编译#ifdef _WIN32LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED#pragma code_page(936)#endif //_WIN32 但是问题依旧对不对?有的同志通过Set转载 2017-05-24 17:32:51 · 1203 阅读 · 0 评论 -
Windows 异步IO的几种实现方式
Windows上的异步IO有好几种实现方式。设备内核对象这是最简单的一种了,直接用设备内核对象的状态。比如文件句柄,线程句柄等等,这些内核对象都是有一个触发状态的,比如当一个线程结束后,线程内核对象就会被触发。对于文件内核对象,如果一个异步IO完成了,就会把文件句柄设置为触发状态,但是有个问题就是:如果有多个异步io,那么只要有一个异步io完成了,文件句柄就会被设置为触发状态。转载 2017-06-30 11:38:56 · 1753 阅读 · 0 评论 -
完成端口模型IOCP详解 (一)
IOCP实现步骤 如果懂得了IOCP的工作原理,它实现起来是很简单的。它的实现步骤如下:1. 创建好IOCP2. 创建Socket(socket可以是由Accept得到)3. 将Socket关联到IOCP4. socket向IOCP提交各种所需请求5. IOCP操作完成之后将结果返回给socket6. 重复步骤3和4,直到soc转载 2017-06-30 11:39:43 · 519 阅读 · 0 评论 -
Win32 API中使用定时器的三种方法
1.SetTimer(HWND,UINT,UINT,TIMERPROC);第一个参数设置为捕获该定时消息的窗口句柄, 第二个参数是定时器的id,第三个是以毫秒为单位的定时长度,最后一个参数设置为NULL,可以使窗口的回调函数进行处理WM_TIMER消息。一般来说,在窗口创建时进行SetTimer调用;在回调函数中添加WM_TIMER的响应。然后再窗口销毁的时候进行计时器的销毁:KillTimer(转载 2017-07-28 09:27:56 · 1340 阅读 · 0 评论 -
标准c++库和stl库,boost库,qt库的总结(一)
用了很长时间是stdio iostream 等头文件,一直有个疑惑,也用了很长一段是键的stl标准库中个别的类,间接性的知道了boost库,qt库等一系列的库昨天在有用到#include头文件的时候,想起了istream ostream fstream这些类到底在c++标准中占什么位置,记得在大脑中一直将他们定性到c++标准库,有忽然想起了stl标准模板库里面各个分类里没有包含io这个类别的,转载 2017-07-19 14:19:30 · 1565 阅读 · 0 评论 -
C++之STL和Boost
最近一年我电话面试了数十位 C++ 应聘者,惯用的暖场问题是“工作中使用过 STL 的哪些组件?使用过 Boost 的哪些组件?”。得到的答案大多集中在 vector、map 和 shared_ptr。如果对方是在校学生,我一般会问问 vector 或 map 的内部实现、各种操作的复杂度以及迭代器失效的可能场景。如果是有经验的程序员,我还会追问 shared_ptr 的线程安全性、循环引用的后果转载 2017-07-19 14:13:11 · 515 阅读 · 0 评论 -
c++中的隐藏、重载、覆盖(重写)
c++中的隐藏、重载、覆盖(重写) 1 重载与覆盖 成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual关键字可有可无。 覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(转载 2017-07-18 15:17:28 · 228 阅读 · 0 评论 -
c++中的隐藏、重载、覆盖(重写)
1 重载与覆盖 成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual关键字可有可无。 覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual关键字。转载 2017-07-20 15:49:39 · 204 阅读 · 0 评论 -
GDI与OpenGL与DirectX之间的区别
图形编程的几种技术对比:GDI,图形设备接口,MS开发的通用的windows系统图形编程接口,功能强涉及面广,一般的编程都用它。但是用来做多媒体开发就差强人意了OPENGL是SGI开发的一套三维图形软件包,出现很早,功能超强,且接口简洁,运算效率 绘图效果极高,早期大都用在科研部门,运行在高性能计算机上。学术性较强,科研部门用的才多,多用于高端绘图。曲高和寡,被DX抢了市场 (DX在家转载 2017-07-06 09:22:24 · 2425 阅读 · 0 评论