C++代码编写举例分析
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,本篇内容主要讲解"C++代码编写举例分析",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++代码编写举例分析"吧!C++代码如下://log.h #i
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
软件开发软件专业学校
网络安全事件的形势分析
湖南喜盈互联网科技有限公司
浙江信息化软件开发价格有哪些
国家网络安全相关的事件
数据库安全性分析主要关心
七年级网络安全的手抄报图片
焦作企业管理软件开发价格
php数据库持久化
数据库服务器解决方案
软件开发人工费如何做账
网络安全标准规范制度预案
远程服务器需要认证
医院信息网络安全质评会
监控服务器启动时间慢
网络不良信息提升网络安全素养
网络安全通道的特性
银行数据库被删
电子口岸数据库安装
美特好超市的数据库表格
用旧手机自制云盘服务器
衢州龙游县软件开发优化建站
网络安全法第44条解读
巴中网络技术怎么样
软件开发员未来就业生涯规划
回收服务器主板
与软件开发相关的职位
村级网络安全教育平台
ad服务器管理
关于意识形态网络安全征文