一个在IT行业摸爬滚打的老司机
相信有过多线程编程经验的朋友,都吃过死锁的苦。除非你不使用多线程,否则死锁的可能性会一直存在。为什么会出现死锁呢?我想原因主要有下面几个方面: (1)个人使用锁的经验差异 (2)模块使用锁的差异 (3)版本之间的差异 (4)分支之间的差异 (5)修改代码和重构代码带来的差异 不管什么原因,死锁的危机都是存在的。
一、死锁会在什么情况发生 1、假设有如下代码 mutex; //代表一个全局互斥对象 void A() { mutex.lock(); //这里操作共享数据 B(); //这里调用B方法 mutex.
多线程编程之三——线程间通讯作者:韩耀旭 原文地址:http://www.vckbase.com/document/viewdoc/?id=1707 七、线程间通讯 一般而言,应用程序中的一个次要线程总是为主线程执行特定的任务,这样,主线程和次要线程间必定有一个信息传递的渠道,也就是主线程和次要线程间要进行通信。
http://sourceforge.net/apps/mediawiki/pyvision/index.php?title=FaceL:_Facile_Face_Labeling 原文地址: Related Open Source and Demo Software This is...
【感谢@吕抒真 的热心翻译。如果其他朋友也有不错的原创或译文,可以尝试推荐给伯乐在线。】 自从谷歌眼镜被推出以来,围绕人脸识别,出现了很多争议。我们相信,不管是不是通过智能眼镜,人脸识别将在人与人交往甚至人与物交互中开辟无数种可能性。
STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector 、deque);另一类是以不连续的节点形式存储的容器(如:list、set、map)。在使用erase方法来删除元素时,需要注意一些问题。
参考文章:http://tech.sina.com.cn/s/2006-07-25/09051053460.shtml响应WM_NCHITTEST消息函数实现如下://////////////////// Non-client hit-test handler to move window by its client area.
MFC对话框屏蔽Enter和ESC键参考:http://www.docin.com/p-122354833.html方法一重载PreTranslateMessage函数 BOOL CXXDlg::PreTranslateMessage(MSG* pMsg){ //对话框屏蔽Enter和ES...
实现CSliderCtrl的子类CXXCtrl 响应左键按下消息 ON_WM_LBUTTONDOWN() void CXXCtrl::OnLButtonDown(UINT nFlags, CPoint point){ // 按键在滑动块区域内,不做操作 CRect tRect; GetThumbRect(&tRect); if (tRect.
在MFC使用过程中,遇到DLL资源与主EXE资源冲突问题。 出现这样的Bug,一时无从下手。 报错位置在核心代码中dlgcore.cpp。 [cpp] view plaincopy BOOL AFXAPI _AfxCheckDialogTemplate(LPCTST...
说明:文章内容部分参考网络上的解决思路。 在没有安装Microsoft Visual Studio的系统上,Debug版本无法正常运行。这是由于缺少vs运行时库引起的。 以vs2005为例。开发机用vs2005编译出Debug版本程序,发送到一台没有安装过vs的机器上运行,运行不成功。
参考资料: http://apps.hi.baidu.com/share/detail/39003388 http://blog.csdn.net/yc0188/article/details/4741871 http://bbs.
一、 概述C++多线程开发中,容易出现死锁导致程序挂起的现象。关于死锁的信息,见百度百科http://baike.baidu.com/view/121723.htm。解决步骤分为三步:1、检测死锁线程。
Cppcheck is an analysis tool for C/C++code. Unlike C/C++ compilers and many other analysis tools, it doesn’t detect syntax errors.
类似QQ与360软件,消息提示有两种。上下浮动、渐入渐出。 1、上下浮动提示框实现 机制,定时器响应上下浮动消息。 主要API:MoveWindow。 源码如下UpDownTipDlg.h、UpDownTipDlg.cpp。
类似360消息弹出框,实现方式一见http://blog.csdn.net/segen_jaa/article/details/7848598。 本文采用另外的API实现渐入渐出效果。 主要API:SetLayeredWindowAttributes。
一款开源源码检测工具。简单易用。 官网网址:http://cppcheck.sourceforge.net/ 软件可直接官网下载。 [plain] view plaincopy Features Out of bounds checking C...
一、默认参数在C++中,可以为参数指定默认值。在函数调用时没有指定与形参相对应的实参时, 就自动使用默认参数。默认参数的语法与使用:(1)在函数声明或定义时,直接对参数赋值。这就是默认参数;(2)在函数调用时,省略部分或全部参数。
equal_range是C++ STL中的一种二分查找的算法,试图在已排序的[first,last)中寻找value,它返回一对迭代器i和j,其中i是在不破坏次序的前提下,value可插入的第一个位置(亦即lower_bound),j则是在不破坏次序的前提下,value可插入的最后一个位置(亦即up...
SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。
此线程池所依赖的线程类,请参看《一个Windows C++的线程类实现》: http://blog.csdn.net/huyiyang2010/archive/2010/08/10/5801597.aspx SystemThreadPool.
Thread.h [cpp] view plaincopy #ifndef __THREAD_H__ #define __THREAD_H__ #include #include #include class R...
此线程池所依赖的线程类,请参看《一个Windows C++的线程类实现》: http://blog.csdn.net/huyiyang2010/archive/2010/08/10/5801597.aspx ThreadPoolExecutor.
呵呵,贴在这里记录一下。 [cpp] view plaincopy #include #include #include #include #pragma pack(2) using namespace std; //下...
在网上搜了很久相关的问题,但是好像没有一个在linux下跑得比较完整的例子,不过经过自己一番搜索和总结,终于做出来了,哈哈,看下面的代码吧。 这个例子可以保存成bmp或者jpeg格式的图片。 下面的结构是保存bmp图片是用到的结构: [cpp] view plaincopy ...
演示截图: 代码简介或代码解析: 如何用ATL创建ActiveX控件实现了一个ActiveX控件,它在一个圆内部有个正多边形,当用户在多变形内部单击将会使多边形的边数在当前的基础上+1,在多变形外部单击将会使多边形的边数在当前的基础上-1,并能改变多边形的颜色.最后举了两个例子说明了如何使用这个刚刚生产得控件.一个是把该控件应用到网页中,一个则是用于一个基于对话框的程序中.详细代码请下载压缩包.(一) 创建工程(1) 打开VC6集成开发环境,按新建按钮,选择PROJECT标签。
摘要:目前MFC和ATL代表了两种框架,分别面向不同类型的基于Windows的开发。MFC代表了创建独立的Windows应用的一种简单、一致的方法;ATL提供了一种框架来实现创建COM客户机和服务器所必须的样板文件代码。
1.对OpenCV的印象:功能十分的强大,而且支持目前先进的图像处理技术,体系十分完善,操作手册很详细,手册首先给大家补计算机视觉的知识,几乎涵盖了近10年内的主流算法;然后将图像格式和矩阵运算,然后将各个算法的实现函数。
您可以到http://www.ijg.org/网站下载libjpeg的源码, IJG JPEG Library就是jpeg压缩库,是以源码的形式提供给软件开发人员的,当然在软件包里也有编译好的库文件,我们这里就只用到其中的libjpeg.lib,jconfig.h,jmorecfg.h,jpeglib.h这几个文件,下面我就介绍一下怎样在自己的程序里嵌入图像压缩功能。
1、首先从此处下载源代码 http://www.codeproject.com/KB/graphics/cximage.aspx 2、然后将里面的工程全部编译一下,我觉得应该是生成对应的库。 3、然后用vc建个工程,同时将源代码里面除了Demo这些文件夹,全部考到新建工程的同一目录。
1.http://blog.csdn.net/huxiangyang4/archive/2010/07/12/5728888.aspx 我认为是最好的 2.http://blog.csdn.net/axlrosek/archive/2007/03/29/1545496.
一、vc编译jpeglib库 1、下载源代码 下载地址:http://www.ijg.org/。注意:一定要下载win32 版本 2、编译源代码. A、解压源代码,修改源代码中jconfig.
一、OpenGL简介 众所周知,OpenGL原先是Silicon Graphics Incorporated(SGI公司)在他们的图形工作站上开发高质量图像的接口。但最近几年它成为一个非常优秀的开放式三维图形接口。
vs2008 + OpenCV-2.1.0-win32-vs2008安装 1. 安装vs2008+sp12. 安装opencv-2.1.0-win32-vs2008,假设安装目录为c:/opencv2.1。
1、new 是c++中的操作符,malloc是c 中的一个函数 2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不会调用析构函数 3、内存泄漏对于malloc或者new都可以检查出来的,区别在于new可以指明是那个文件的那一行,而malloc没有这些信息。
目前知道有两种方式:可以提供宽字符与ANSI字符之间的转换, 第一种由COM库提供的函数 char* _com_util::ConvertBSTRToString(BSTR ); BSTR _com_util::ConvertStringToBSTR(char*); Example // ConvertBSTRToString.
在C++中有两种类型可以用于表示字符,char和wchar_t。 但是字符串格式的标准却有很多种,如ASCII,UTF8,UTF16,UTF32等等。字符串的格式和char/wchar_t 的关系是什么呢? 首先要理解Unicode和UTF-8的关系,可以参考我转帖的文章:http://www.cnblogs.com/whyandinside/archive/2012/02/05/2338841.html 额外还有几个问题需要解决: 1. UCS-2、UCS-4、BMP UCS有两种格式:UCS-2和UCS-4。
转自: http://apps.hi.baidu.com/share/detail/17798660 字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得字符编码的知识。不注意的人可能对这个不在意,但这些名词有时候实在让人迷惑,对想学习计算机知识的人来说,搞懂它也十分重要,我也是在学习中慢慢了解了一些这方面的知识。
GDI+所有类的接口函数如果要传递字符串作为参数的话,似乎都用UNICODE串,即WCHAR*。我开始也被整得晕头转向,因为窗口编程所用往往是CString,用IO流读文件数据又得到char *。得益于网上牛人们的总结,我用到以下几种基本方法去实现三者间的转换: 代码段一:char * 转WCHA...
一、文件的复制 #include #include using namespace std; int CopyFile(char *SourceFile,char *NewFile){ifstream in;ofstream out;in.
(1) 使用ANSI C的库函数 可以使用ANSI C的以下几个库函数: FILE *fopen( const char *filename, const char *mode ); int fclose( FILE *stream ); size_t fr...
C++实现线程池。 欢迎转载,转载请注明原出处:http://blog.csdn.net/ithzhang/article/details/9020283 代码地址:https://github.com/ithzhang/ThreadpoolLib.git 本文介绍的线程池采用C++语言,在windows平台下实现。
关于Char* ,CString ,WCHAR*之间的转换问题GDI+所有类的接口函数如果要传递字符串作为参数的话,似乎都用UNICODE串,即WCHAR*。我开始也被整得晕头转向,因为窗口编程所用往往是CString,用IO流读文件数据又得到char *。
在MFC程序设计的学习过程中最令人感到难受,甚至于有时会动摇学习者信心的就是一种对于程序的一切细节都没有控制权的感觉。这种感觉来源于学习者不知道一个MFC程序是如何运行起来的(即一个MFC程序的执行流程)和MFC程序的设计思想和机制,即使是写过Windows程序的学习者,也会感到非常迷惘并且无从下手。
Q UNICODE字符串如何显示 A 如果程序定义了_UNICODE宏直接用 WCHAR *str=L"unicodestring"; TextOut(0,0,str); 否则就需要转换类型 #include WCHAR *str=L"unicodestring"; bstr_t str1=str...
http://blog.csdn.net/ithzhang/article/details/7916732转载请注明出处!! 第二章:字符和字符串处理 使用vc编程时项目--》属性--》常规栏下我们可以设置项目字符集合,它可以是ANSI(多字节)字符集,也可以是unicode字符集。
这篇文章是我两年多前写给同事看的,当时不少同事对编码了解甚少,直到现在发现还是很多人对编码了解甚少,所以我就把这篇文章发出来让大家参考一下,希望对一些人有帮助,不过这篇文章是当时花了3个小时左右写的,错误在所难免。
//========================================================================//TITLE:// MultiByteToWideChar和WideCharToMultiByte用法详解//AUTHOR:// nora...
这是两个相关的程序,前者是后者的基础。实际上前一个程序也是在前面博文的基础上做的修改,请参考《在OpenCV中利用鼠标绘制直线》 。下面贴出代码。 程序之一,在OpenCV中利用鼠标绘制矩形 [c-sharp] view plaincopy #include #include #include #pragma comment( lib, "cv.
今天刚刚做了一个静态链接到MFC的规则dll,即“Use MFC in a static library“,该dll用来显示一个窗体。然后在一个mfc可执行程序A.exe中调用这个dll文件,可以正常的显示窗体。