C++代码编写举例分析
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本篇内容主要讲解"C++代码编写举例分析",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++代码编写举例分析"吧!C++代码如下://log.h #i
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
4g移动网络安全风险场景
甘肃公安厅网络安全宣传周
陕西软件开发技校
网络技术和通信工程的区别
支付宝 开源 数据库
互联网的黑科技都有哪些
数据库营销的过程
东莞自主可控软件开发源头好货
索引对数据库系统影响
计机网络技术就业方向
卧室效果图软件开发
神奇宝贝1.10.2服务器
电脑软件开发书籍
网络安全宣传周 2021年
深圳百单网互联网科技公司
安徽常见软件开发批发价格
全国中小学网络安全知识竟赛
联想sr588服务器硬盘序列号
软件开发摘要
wifi的代理服务器设置
惠普服务器塔塔声
海信电视服务器长什么样
投影在数据库有什么用
美的高管办的软件开发公司
数据库呀4v
二本网络安全排行榜
格瑞姆巴托服务器电信
网络安全图标 ppt
数据库url字符编码格式
网络安全法普法题