自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qingmoshu的专栏

每天2篇以上,坚持就是胜利

  • 博客(38)
  • 资源 (1)
  • 收藏
  • 关注

原创 《Win32多线程程序设计》CRT中的多线程

Q: 再次加深印象volatile A: 【可以说基本没用到过,所以也总是忘记怎么用。。。】 易变的,这个关键字告诉编译器不要持有变量的临时性拷贝。即不让编译器优化变量,因某些变量值变化频繁时,如果编译器进行优化,则在寄存器中就存储了其变量值,取值也会在存储器中取,这会导致读到的值是过去的某个值,导致错误。 const 和 volatile 都是 ANSI 的标准关键字,所有的 C/C++

2017-09-29 00:35:42 299

原创 《Win32多线程程序设计》C++中的多线程

【本章看的比较杂,还是以Q&A的方式展开吧】 Q: C++中调用_beginthreadex()需要注意什么? A: unsigned long _beginthreadex(void *security,unsigned stack_size,unsigned (* start_address)(void*),void *arglist,unsigned initflag,unsi

2017-09-29 00:04:04 359

原创 《Win32多线程程序设计》之异步IO

本章描述如何使用 overlapped I/O(也就是 asynchronous I/O)?某些时候 overlapped I/O 可以取代多线程的功用。然而, overlapped I/O 加上completion ports,常被设计为多线程处理,以便在一个“受制于 I/O 的程序”(所谓 I/O bound 程序)中获得高效率。这一章介绍一个你可能不想使用多线程的场合。许多应用程序,例如终端机

2017-09-04 23:29:08 350

原创 《Win32多线程程序设计》之线程优先级

线程优先权(Thread Priority)Win32 优先权是以数值表现的,并以进程的“优先权类别(priorityclass)”、线程的“优先权层级 (priority level)”和操作系统当时采用的“动态提升(Dynamic Boost )”作为计算基准。 所有因素放在一起,最后获得一个 0~31 的数值。拥有最高优先权之线程,即为下一个将执行起来的线程。1. 优先权类别(Priority

2017-08-24 21:43:32 600

原创 《Win32多线程程序设计》之线程终止

本文讨论如何在某个线程内终止另一个正在运行的线程或者在一个线程中控制其他线程类似问题方法一:利用 TerminateThread() 放弃一个线程 “TerminateThread() 是一个危险的函数, 应该在最不得已的情况下才使用”。 缺点: - 目标线程结束前无法释放堆栈,可能造成内存泄漏 - 如果线程在一个critical section中,则该critical se

2017-08-23 22:36:58 490

原创 《Win32多线程程序设计》之线程同步

线程等待 等待是线程的必要之恶。 比较low的等待方法是:1.sleep(), 2.循环GetExitCodeThread()。这两种方法耗cpu,且使代码效率低下。用WaitForSingleObject,等待核心对象变为激发状态DWORD WaitForSingleObject(HANDLE hHandle,DWORD dwMilliseconds);DWORD WaitForMult

2017-08-22 23:41:39 363

原创 《Win32多线程程序设计》线程初识

进程就是一大堆对象的拥有权的集合。【这解释言简意赅,我喜欢】多线程vs多进程多线程:线程价廉。线程启动比较快,退出比较快,对系统资源的冲击也比较小。而且, 线程彼此分享了大部分核心对象(如 file handles)的拥有权。 多重进程:最困难的问题大概是如何把窗口的 handle 交给另一个进程。为了分享窗口 handle,你必须明明白白地产生该 handle 的一个副本,并且可以

2017-08-07 21:59:07 305

原创 《Windows核心编程》之22远程线程注入DLL

起源 贵铎·范·罗萨姆(Guido van Rossum)于 1989 年底始创了 Python 1991 年初,Python 发布了第一个公开发行版。 特点C 或者 C++最大的弊病在于内存管理是由开发者负责的。在 Python 中,由于内存管理是由 Python 解释器负责的,所以开发人员就可以从内存事务中解放出来,全神贯注于最直接的目标,仅仅致力于开发计划中首要的应用程序。这会使错误更少

2017-07-24 22:52:49 325

原创 《简明Python教程》之更多

传递元组用法1:a, b = <some expression> 具有两个值的一个元组,使用一个元组可满足一个函数返回两个不同的值>>> def get_error_details():... return (2, 'details')...>>> errnum, errstr = get_error_details()>>> errnum2>>> errstr'details

2017-07-02 23:20:04 203

原创 《简明Python教程》之异常

错误NameError异常EOFError:一个文件结尾(End of File)符号(由 ctrl-d 实现)在不该出现的时候出现了。处理异常try..excepttry: text = input('Enter something --> ')except EOFError: print('Why did you do an EOF on me?')except Keyboa

2017-06-28 00:00:55 450

原创 《简明Python教程》之输入与输出

用户输入内容def reverse(text): return text[::-1]def is_palindrome(text): return text == reverse(text)something = input("Enter text: ")if is_palindrome(something): print("Yes, it is a palindrom

2017-06-27 23:25:02 376

原创 《简明Python教程》之面向对象编程

类与对象是面向对象编程的两个主要方面。一个类(Class)能够创建一种新的类型(Type),其中对象(Object)就是类的实例(Instance)。 字段与方法通称类的属性(Attribute)。 字段有两种类型——它们属于某一类的各个实例或对象,或是从属于某一类本身。它们被分别称作实例变量(Instance Variables)与类变量(Class Variables)。self假设你有一个

2017-06-27 00:02:43 598

原创 《简明Python教程》之数据结构

Python 中有四种内置的数据结构——列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)。列表有序项目的集合,逗号隔开,方括号括起来。 列表是使用对象与类的实例。 你可以向列表中添加任何类型的对象,包括数字,甚至是其它列表。# This is my shopping listshoplist = ['apple', 'mango', 'carrot', 'ba

2017-06-23 20:21:59 408

原创 自动化编译系统之Jenkins与Git关联

目标中创建自动化任务,实现从gitlab上下载代码,自动化编译,自动化编译vc项目)。配置1.下载安装Jenkins,配置用户名密码,地址和端口。 2.登录Jenkins,系统管理->管理插件 中,下载Git Plugin 和ssh plugin. 3.Add Credentials 4.创建新任务 5.配置保存历史构建数 防止占用太多空间。 6.配置git路径

2017-06-23 16:23:02 2238

原创 《简明Python教程》之模块

标准库模块importimport syssys 模块,由于其是一个内置模块,因此 Python 知道应该在哪里找到它。 如果它不是一个已编译好的模块,即用 Python 编写的模块,那么 Python 解释器将从它的 sys.path 变量所提供的目录中进行搜索。如果找到了对应模块,则该模块中的语句将在开始运行,并能够为你所使用。在这里需要注意的是,初始化工作只需在我们第一次导入模块时完成。

2017-06-23 12:10:38 372

原创 《简明Python教程》之函数

函数函数可以通过关键字 def 来定义。这一关键字后跟一个函数的标识符名称,再跟一对圆括号,其中可以包括一些变量的名称,再以冒号结尾,结束这一行。随后而来的语句块是函数的一部分。def print_max(a, b): if a > b: print(a, 'is maximum') elif a == b: print(a, 'is equal to

2017-06-22 19:51:59 380

原创 《简明Python教程》之控制流

在 Python 中有三种控制流语句——if for 和 while。ifnumber = 23guess = int(input('Enter an integer : '))if guess == number: # 新块从这里开始 print('Congratulations, you guessed it.') print('(but you do not win

2017-06-22 19:00:04 560

原创 《简明Python教程》之运算符与表达式

1.运算符 罗列了跟C不一样的** (乘方)+ 返回 x 的 y 次方。 3 * 4 输出 81 (即 3 3 * 3 * 3)。/ (除) x 除以 y 13 / 3 输出 4.333333333333333。// (整除) x 除以 y 并对结果向下取整至最接近的整数。 13 // 3 输出 4。 -13 // 3 输出 -5。not (布尔“非”)5 如果 x 是 T

2017-06-22 18:33:17 230

原创 《简明Python教程》之基础

整型 针对有经验的程序员的提示 没有单独的 long 类型。int 类型可以指任何大小的整数。字符串 被双引号包括的字符串和被单引号括起的字符串其工作机制完全相同, 诸如空格与制表符,都将按原样保留。 针对 C/C++ 程序员的提示 Python 中没有单独的 char 数据类型。它并非切实必要,并且我相信你不会想念它的。 针对 Perl/PHP 程序员的提示 记住单引号括起的字符串

2017-06-22 17:49:24 1223

转载 [转]ProcessExplorer使用分享

ProcessExplorer使用分享http://www.cnblogs.com/idbeta/p/4991080.html

2017-06-22 15:14:58 435

原创 dump code

string AccurateTimeStr(void){ SYSTEMTIME sys; GetLocalTime( &sys ); ostringstream oss; oss << sys.wYear << "-" << sys.wMonth << "-" <<sys.wDay <<"_" <<sys.w

2017-03-13 10:29:31 394

原创 第11章 线程池的使用

用户方式的同步机制的出色之处在于它的同步速度很快。 多线程应用程序面临的两大问题: 1 对县城的创建和撤销进行管理 2 线程对资源的访问试试同步,事件 信标 互斥对象 关键代码段为了使操作更加方便,唯一的方法是让系统能够自动保护共享资源,这就产生了线程池。Microsoft的Win2000提供了新的线程池函数,虽并不完全适合每个环境,但可以适合你的需要,并节省了大量的开发时间。 新的线程池函

2017-03-13 10:28:10 197

原创 MFC edit 控件改变字体 垂直居中

CFont m_fontEdit;CEdit m_edit;字体大小 加粗等CFont* ptf = m_edit.GetFont(); // 得到原来的字体 LOGFONT lf; ptf->GetLogFont(&lf); lf.lfHeight = 17; // 改变字体高度 m_fontEdit.CreateFont

2017-03-02 21:20:44 3996 2

转载 Win32 API资源分配释放速查(转)

转自: http://www.cnblogs.com/mugua/archive/2010/01/07/1641191.html

2017-03-02 18:40:05 298

原创 log4cpp用法

1.下载好log4cpp开源库后,添加到工程中,调整编译顺序。 2.在工程目录中添加log.property配置文件,文件内容如下:property configurator filePriorityLevelEMERG = 0, FATAL = 0, ALERT = 100, CRIT = 200,ERROR = 300, WARN = 400, NOTICE = 500, INFO = 600

2017-03-01 20:36:29 681

转载 VC/MFC如何设置对话框背景颜色

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-01-06 14:25:08 291

原创 C++ tooltip

1..h 定义CToolTipCtrl m_ToolTip; 2. .cpp创建显示初始化函数中:CRect rectTip;GetDlgItem(IDC_XXX)->GetWindowRect(&rectTip);ScreenToClient(&rectTip);EnableToolTips(TRUE);m_ToolTip.Create(this, TTS_ALW

2016-01-30 14:13:07 1080

原创 革命尚未成功 同志仍需努力

越调试越感叹:NetBrain的软件真的是太高级了!!!处处是机关,连最不起眼的地方都有亮点,我真的折服了~~~www.netbraintech.com越熟悉越能体会自己的思维和技能是何等的欠缺。真是一个活到老学到老的行业!!!

2015-06-19 10:22:58 572

转载 C++ mkdir 创建多级文件夹目录

mkdir函数的头文件:#include <direct.h>用for循环依次创建: char *strDirPath="D:\\test\\test1\\test2\\"; if (strlen(strDirPath)>MAX_PATH) { return; } int ipathLength=strlen(strDirPath); i

2015-05-17 18:02:02 17997 1

转载 WinDebug dump

windebug dump

2015-05-06 16:45:54 928

转载 new 内存分配失败处理

转自:http://www.51testing.com/html/70/n-827070.html在C++语言中,我们经常会使用new给一个对象分配内存空间,而当内存不够会出现内存不足的情况。C++提供了两种报告方式:  1、抛出bad_alloc异常来报告分配失败;   2、返回空指针,而不会抛出异常。  C++为什么会采用这两种方式呢?这主要是由于各大编译器公司设计C++编译器公司的结果,因为

2015-04-17 15:57:00 617

转载 VC 调试技巧 全面又强大

作者: 来源:csdn 发布者:admin 时间:2009-07-07 10:45:35 点击:7131 前言 当程序的运行结果与程序员预想的不一样,如死机,计算值不正确,出现内存访问冲突等,就需要进行调试2 进行调试前的准备工作 因为程序调试是一项十分耗时的工作,很难估计出将要花费多长时间,因此在调试前,一定要做好充分准备,尽量避免做无用功

2015-04-17 14:34:39 515

原创 2015年的3月是不一样的3月

今天是3月的最后一天,2015年也过了四分之一了,我来到新东家也正好半个月了,这是一个新的开始,告诫自己,莫负春光,莫负自己。今年正巧也是参加工作以来的第三年,新东家也是我应聘面试以来的第三家公司,我这是跟3杠上了。。。为了纪念这次耗时又算是成功的面试经历,我决定把她记录下来。新东家面试流程:笔试-机试-一面-二面-HR面。【注:姐也是一程序猿(C++滴)】1.笔试全是选择题,

2015-03-31 13:06:14 446

原创 MFC中CtreeCtrl控件实现三态复选的总结

对网上现有资料整理总结网上所能查到的所有关于树形控件三态显示的做法都是添加一个已写好的CTreeCtrl类的派生类,但经过Q姐琢磨和测试,根本无需再创建一个派生类就能实现树形控件的三态复选,下面分享具体做法。1.给树形控件绑定变量CTreeCtrl m_tc;2.添加三态显示框bmp资源,如下3.添加树形控件三态显示效果相关函数//.h文件中: BOOL SetSt

2015-03-30 13:53:56 3294

转载 VC6.0的17种Projects

1.ATL COM AppWizard 用来新建一个COM组件的向导,比如WORD里用的公式编辑器就是一个COM组件。ATL(Active Template Library)活动模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。通过活动模板库,可以建立COM组件,然后通过ASP页面中的脚本对COM对象进行调用。这种COM组件可以包含属性页、对话框等等控件。

2013-09-21 00:52:35 719

原创 Windows、字符集和_T宏

1.两个字符集ANSI(8位):Windows98及其以前版本,类似ASCII。Unicode(16位):Windows NT和iWndows 2000,ANSI的超集。2.应用程序基于ANSI的程序可以在windows NT和indows 2000上运行,稍慢;基于Unicode的程序不能在Windows 98上运行,除非将每个传递给Windows的字符串由Unicode转换

2013-09-21 00:26:58 766

转载 VC6.0中无法打开文件和无法向工程中添加文件的官网解决方法

VC6.0中无法打开文件和无法向工程中添加文件的问题下面是微软官网给出的解决方法包括FileTool.exe的下载和使用步骤点击打开链接

2013-09-08 22:07:02 785

原创 MFC 简述

一、MFC的两个是 一是放置Windows API的面向对象的包装的C++类库。MFC6.0版本封装了约200个类库:其中一些可以直接使用,另一些则主要作为基础类使用;类库中定义的成员函数有几百个:其中许多是Windows API的简单封装,甚至与相应的API函数同名。二是一个应用程序的框架结构。MFC几乎封装了程序操作的所有方面;提供抽象功能:把程序中数据视图与数据本身分

2013-09-08 01:26:13 1040

CTreeCtrl 三态

CTreeCtrl 树形控件 父子联动 父节点三态显示mfc vc++

2015-03-20

空空如也

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

TA关注的人

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