![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
Frank-Lee
ITer
展开
-
基于jwSMTP的C++发送Email的Demo
http://blog.csdn.net/generalhking/article/details/8111309转载 2013-06-08 15:19:44 · 741 阅读 · 0 评论 -
C++的异常处理
一、什么是异常处理 一句话:异常处理就是处理程序中的错误。 二、为什么需要异常处理,以及异常处理的基本思想 C++之父Bjarne Stroustrup在《The C++ Programming Language》中讲到:一个库的作者可以检测出发生了运行时错误,但一般不知道怎样去处理它们(因为和用户具体的应用有关);另一方面,库的用户知道怎样处理这些错转载 2013-06-21 10:51:03 · 590 阅读 · 0 评论 -
C++获得当前执行代码在源文件的文件名
使用宏定义: cout原创 2013-06-07 15:05:35 · 1333 阅读 · 0 评论 -
C++获得当前执行代码在源文件中的行号
使用宏定义: cout原创 2013-06-07 14:35:44 · 1486 阅读 · 0 评论 -
log4cpuls在vc2010上编译的问题
安装原文: http://blog.csdn.net/eclipser1987/article/details/6904301 例子: [cpp] view plaincopy #include #include using namespace log4cplus; int m转载 2013-06-06 16:52:49 · 765 阅读 · 0 评论 -
Microsoft Visual Studio 2010下log4cplus的安装,集成,测试
log4cplus是C++编写的开源的日志系统,功能非常全面,用到自己开发的工程中会比较专业的,:),本文介绍了log4cplus基本概念,以及如何安装,配置。 ### 简介 ### log4cplus是C++编写的开源的日志系统,前身是java编写的log4j系统.受Apache Software License保护。作者是Tad E. Smith。log4cplus具有线程安全、转载 2013-06-06 16:34:57 · 660 阅读 · 0 评论 -
多线程通信——互斥量
类似于临界段,互斥量能够保证对单个资源的互斥访问,互斥量包含一个使用数量、一个线程ID、一个递归计数器。 //创建互斥量 HANDLE CreateMutex(PSECURITY_ATTRIBUTES psa, BOOL fInitialOwner, PCTSTR pszName); //获得它自己进程与现有互斥量相关的句柄 HANDLE OpenMutex(DWORD fdwAcces原创 2013-06-05 20:36:03 · 648 阅读 · 0 评论 -
多线程通信——信号量
当当前资源的数量大于0的时候,等待信号量的线程可以获得一个资源并继续执行,信号量的当前资源数量将减1,如果当前资源的数量为0,则等待信号量的线程将处于等待状态,直到有线程释放信号量,使信号量标识的资源数量大于0HANDLE CreateSemaphore( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount,原创 2013-06-05 20:55:05 · 707 阅读 · 0 评论 -
多线程通信——事件
一共有两种不同的事件对象,分别是: 人工重置事件:得到通知时,等待该事件的所有线程都变为可调度线程 自动完成事件:得到通知时,等待该事件的所有线程只有一个变为可调度线程 相关函数主要包括: HANDLE CreateEvent( PSECURITY_ATTRIBUTES psa, //安全性参数 BOOL fManualReset, /原创 2013-06-05 19:55:23 · 837 阅读 · 0 评论 -
多线程通信——等待函数
当进程或者线程正在执行的时候,进程内核对象处于未通知的状态,当进程终止的时候,它就变成已通知状态。 线程可以使自己进入等待状态,直到一个对象变成已通知状态,可以通过等待函数还实现。 DWORD WaitForSingleObject( HANDLE hObject, DWORD dwMilliseconds); 第一个参数是要等待的内核对象 第二个参数是为了等该对象变为已通知状态需要等待多原创 2013-06-05 15:35:09 · 813 阅读 · 0 评论 -
多线程通信——临界段
//首先定义临界段对象 CRITICAL_SECTION cs; //初始化临界段对象 InitializeCriticalSection(&cs); //在使用的时候先进入临界段 EnterCriticalSection(&cs); ///在此添加你的处理 //当你使用完的时候,离开临近段 LeaveCriticalSection(&cs); //不再需要临界段的时原创 2013-06-05 15:07:45 · 592 阅读 · 0 评论 -
多线程通信——互锁函数
long globalVar = 0;//Global value for testing DWORD WINAPI ThreadFuncInterlock1(PVOID pParam) { InterlockedExchangeAdd(&globalVar, 1); cout << globalVar <<endl; //globalVar++; return 0; } DWORD W原创 2013-06-05 14:59:07 · 954 阅读 · 0 评论 -
C++按日期写日志文件,每天单独一个日志文件
项目业务需要实现用C++最基本的流对象实现按照日期写日志文件 我的思路是单独开一个线程,监控系统的时间,当等到零点的时候关闭当前流和文件的关联,然后创建新的文件,继续写日志 代码如下: DWORD WINAPI MonitorTime(PVOID pParam) { time_t sttime; struct tm * tim; while (1) { time(&sttime)原创 2013-06-05 14:35:36 · 3335 阅读 · 0 评论 -
windbg检测句柄泄露(可定位到具体代码)
1、用c++写一个句柄泄露的样例程序: #include "stdafx.h" #include void fun1(void); void fun2(void); void fun3(void); void fun4(void); int main(int argc, char* argv[]) { while(1) { fun1(); fun2();转载 2013-07-10 15:00:51 · 618 阅读 · 0 评论