glog的基本用法-on win

前言 glog在linux下直接包上头文件和库文件, 就可以用了。 在win下,还涉及glog库的编译选项和测试程序编译选项的匹配问题. 如果选库选到开发版本而不是稳定版,也是有问题。 看其他同学做的plog实验,都是一次成功… 我咋那么背啊,做实验做了好久。 开始选的...

2019-04-22 10:19:33

阅读数 71

评论数 0

chromium - FROM_HERE

前言 在看chromium的任务处理部分. chromium中的任务都是异步处理的(防止阻塞UI). 发起点投递任务到任务队列中,另外一个处理线程(用DoLoop设计模式)从任务队列中弹出任务,进行处理。 这时,如果在异步弹出任务时,知道任务是在哪个点投递到任务队列的,这对调试很有用。在vs201...

2018-12-28 18:13:26

阅读数 49

评论数 0

在Visual Studio中,确定第三方库或自己工程应该设置的CRT库选项的工具

前言 将glog编译了好多版本,用测试程序连接时,各种错。 看了一下,主要是要链接的glog库的crt库设置和测试工程的crt库设置不配套引起的问题。 做了一个工具,来解决库链接不匹配的问题。做了测试,非常好用。 如果由于crt库设置不配套引起的编译错误,直接看编译时打出的提示...

2018-09-08 16:25:06

阅读数 143

评论数 0

#elif defined

前言 同事编译一个开源工程,遇到 #elif INET_ADDR 编译不过。 写了测试程序重新这个问题,能重现。改成 #elif defined INET_ADDR 编译通过. 可能作者用的gcc编译器版本和我们不同。 实验 /* config.h. Generated...

2018-03-29 13:33:01

阅读数 247

评论数 0

宏一定要用大写

前言被一个宏折腾了2次,才偶然发现问题。问题挺隐蔽的,也许是自己对BUG出现后的表现,还不太敏感。 以前认为宏需要大写,可能就是看着舒服,维护方便。 经过这个bug后,增加了体会。宏大写可以降低调试的难度,提高代码的清晰度。BUG回放最近维护的linux工程,为了出win版。代码中不可...

2017-11-02 22:18:18

阅读数 910

评论数 0

针对指定进程进行Hook

前言 昨天,写了一个Demo, 对指定进程进行Hook, 就是SetWindowsHookEx参数不同. 看msdn+自己做试验,试试就能写出来.demo中假定要Hook键盘和鼠标消息, 用DebugView打印出来发生的键盘和鼠标消息. 打印鼠标消息时, 要将鼠标消息的值,转成字符串. ...

2016-03-30 22:38:14

阅读数 2362

评论数 0

宏, C++模板,补充代码

// 补充代码 标记后的内容,原来是没有的. 这是模拟宏和c++模板在MFC的应用. /// @file main.cpp /// @brief 宏, C++模板,补充代码 #include class CNoTrackObject {}; class AFX_MODULE_STATE ...

2016-01-25 11:25:18

阅读数 385

评论数 0

用宏实现模板功能

前言 今天遇到一道作业, 让我想了很久. 这道题真奇葩, 已经被老师玩哭了^_^ 我作出来一个结果, 不知道合不合老师的心意~~ 题目 4.用宏实现模板功能,分别输出 void main() { ADD(int)(1,2); ADD(float)(1.0f,2.2f); ADD(int)(...

2015-12-27 00:26:10

阅读数 1150

评论数 0

CLASS_CREFCOUNT

用宏实现一个引用计数类, 可以对不同的所有者类, 产生不同的引用计数类. /// @file exam_x_x.cpp /// @brief 测试引用计数类 #include #include #include "RefCount.h" #include...

2015-12-17 13:01:29

阅读数 332

评论数 0

在c++中模拟变体变量variant, 用宏实现

为了变体类型做好之后,  使用统一的接口, 需要做很多getter, setter.  用宏做getter, setter, 降低了很多工作量. /// @file exam_1_1.cpp /// @brief exam_1_1 在c++中模拟变体变量variant, 用宏实现 #incl...

2015-11-25 01:46:19

阅读数 922

评论数 0

用宏简化枚举类型的字符串输出

/// @file exam_1_8.c /// @brief /** exam_1_8 * 定义一个枚举变量,其枚举元素为人民币的面值。要求输出枚举元素字符串。 */ #include #include #include #include #include typedef enu...

2015-11-24 12:48:48

阅读数 1132

评论数 0

demo : 用宏简化大型switch/case - LoadStringW

/// @file macro20131117.cpp /// @brief > /// 场景: 工程中做国际化的时候, 需要将.rc中定义的资源ID转成字符串 /// 使用了 ATL::CString::LoadStri...

2013-11-17 14:55:10

阅读数 1957

评论数 0

note : FAILED宏 和 SUCCEEDED宏 的使用细节

#include #include #include /// FAILED宏 和 SUCCEEDED宏 的使用细节 /// 为了使用 FAILED(hr) 或 SUCCEEDED(hr) 宏 /// hr值的选用注意事项: /// 成功时,可以选用 S_OK /// 失败时, 不能选用...

2013-10-16 06:29:44

阅读数 2337

评论数 0

简化大型Switch的Case输入

<br />// BigSwitchDefine.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "BigSwitchDe...

2010-09-22 17:20:00

阅读数 1524

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭