C++代码编写举例分析
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"C++代码编写举例分析",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++代码编写举例分析"吧!C++代码如下://log.h #i
千家信息网最后更新 2026年11月01日C++代码编写举例分析
本篇内容主要讲解"C++代码编写举例分析",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++代码编写举例分析"吧!
C++代码如下:
//log.h #ifndef _LOG_H_ #define _LOG_H_ /* LOG Library(WIN98/NT/2000) ver 0.1 Compile by: BC++ 5; C++ BUILDER 4, 5, 6, X; VC++ 5, 6; VC.NET; GCC; Copyright(c) 2006.5 - 2007.4 llbird wushaojian@21cn.com http://blog.csdn.net/wujian53 Use: 这是一个很简单的日志, 用的是C风格的函数,支持多线程 只要包含本文件,并且把log.cpp文件添加到项目中就可以了 在VC中你可能需要在log.cpp中添加#include "stdafx.h" 具体使用 InitLog();//初始化 LOG("程序启动"); LOG1("%s", str); DestroyLog();//可有可无 调试时输出可以定义 LOG_TO_STD 或者 LOG_TO_DEBUG 对于C++ Builder 可以使用 LOG(Exception *e or Exception &e); 对于WIN32 API LOG_LAST_ERROR(); 对于_com_error LOG( _com_error &e); */ #include #include #include #include //使用短的原文件名 #define LOG_SHORT_SOURCE_FILE //使用日志 #define LOG_TO_FILE //定义标准错误输出设备 #define LOG_STD_DEV stderr //使用标准输出设备 //#define LOG_TO_STD //向调试窗口输出 //#define LOG_TO_DEBUG //输出messagebox //#define LOG_TO_MESSAGE_BOX //多线程用临界区 extern CRITICAL_SECTION _g_LogMutex; //全局日志文件名 extern char _g_LogFileName[MAX_PATH]; extern void InitLog(); //>初始化日志 extern void DestroyLog();//>清除日志 extern BOOL Log(const char* src/*源程序名*/, int line/*行号*/, const char* description/*描述*/);//>新增日志 //记录日志宏列表 #define LOG(arg) Log(__FILE__, __LINE__, (arg)) //多参数记录日志宏 #define LOG1(str, p1) { LOG_SPRINTF_BUFFER; sprintf(buffer, (str), (p1)); LOG(buffer); } #define LOG2(str, p1, p2) {LOG_SPRINTF_BUFFER; sprintf(buffer, (str), (p1), (p2)); LOG(buffer); } #define LOG3(str, p1, p2, p3) { LOG_SPRINTF_BUFFER; sprintf(buffer, (str), (p1), (p2), (p3)); LOG(buffer); } #define LOG4(str, p1, p2, p3, p4) { LOG_SPRINTF_BUFFER; sprintf(buffer, (str), (p1), (p2), (p3), (p4));LOG(buffer);} #define LOG5(str, p1, p2, p3, p4, p5) { LOG_SPRINTF_BUFFER; sprintf(buffer, (str), (p1), (p2), (p3), (p4), (p5)); LOG(buffer);} //记录windows API错误值 #define LOG_LAST_ERROR() { LOG_SPRINTF_BUFFER; DWORD eid = GetLastError();sprintf(buffer, "Last Error(%d):", eid); int len = strlen(buffer); \ FormatMessage( \ FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,\ NULL,\ eid, \ MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), \ buffer + len,\ DEFAULT_LOG_SPRINTF_BUFFER_SIZE-len-1, \ NULL \ ); \ LOG(buffer); \ }\ #if defined(__cplusplus) && defined(_INC_COMDEF) ///新增COM错误信息 inline BOOL Log(const char* src, int line, _com_error &e) { char buffer[DEFAULT_LOG_SPRINTF_BUFFER_SIZE]; sprintf(buffer, "_com_error\tCode = %x\tCode meaning = %s\tSource = %s\tDescription = %s", e.Error(), (LPCSTR)(_bstr_t)e.ErrorMessage(), (LPCSTR)(_bstr_t)e.Source(), (LPCSTR)(_bstr_t)e.Description()); return LOG_POS(src, line, buffer); } #endif ///新增VCL异常信息 #if defined(__cplusplus) && defined(__BORLANDC__) && defined(INC_VCL) inline BOOL Log(const char* src, int line, Exception *e) { return LOG_POS(src, line, e->Message.c_str()); } inline BOOL Log(const char* src, int line, Exception &e) { return LOG_POS(src, line, e.Message.c_str()); } #endif #endif _LOG_H_ 到此,相信大家对"C++代码编写举例分析"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
日志
C++
输出
代码
文件
分析
错误
信息
内容
文件名
标准
线程
设备
学习
实用
更深
可有可无
全局
兴趣
函数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡豆
耶加雪菲
深圳九邦互联网科技有限公司
苏州找大状互联网科技有限公司
互联网科技活动banner
互联网扶贫科技
猪兼强互联网科技
互联网 科技创业
广州紫鲸互联网科技
上海万想互联网科技
重庆科技学院互联网
互联网科技教育视频
互联网和黑科技的看法
宝灵互联网科技有限公司
新兴科技互联网创新大赛颁奖典礼
特约风豹互联网科技为什么扣费
南京一网一红互联网科技有限公司
广州梦谷互联网科技有限公司领导
江苏互联网智能科技产品出厂价
网互联网络科技
深圳恒合互联网络科技有限公司
浩特互联网科技
小马过河互联网科技
亿人帮互联网科技
昭通云南众福互联网科技有限公司
互联网科技项目计划书材料类
互联网科技资金流入
山东大美朱楼互联网科技有限公司
互联网高科技行业有哪些企业
瑞安市蟠桃会互联网科技有限公司