![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 52
linchuangsimeng
这个作者很懒,什么都没留下…
展开
-
利用pugixml 将xml转化为string
在pugixml 中,xml_document 和xml_node 没有直接将xml保存为字符串的函数,可以通过重写writer实现。代码如下: struct xml_string_writer :public pugi::xml_writer { string xml; void write(const void* data, size_t size) { char* p原创 2015-10-22 23:13:05 · 2890 阅读 · 0 评论 -
监听程序退出的方法
1.Java 程序 通过Runtime.getRuntime.addShutdownHook(Thread t), 添加一个线程监控程序的退出,在线程中做一些清理操作 2.Win C程序 通过SetConsoleCtrlHandler(PHANDLER_ROUTINE handler, true), 添加一个信号监听,handler 是一个回调函数,定义如下: BOOLhandl原创 2017-04-22 10:51:45 · 1398 阅读 · 0 评论 -
WIN 设备遍历
1.遍历win设备,需要使用的SetUpApi 头文件:SetupAPI.h lib:setupapi.lib 2.使用方法如下: a.HDEVINFO SetupDiGetClassDevs(CONST GUID *ClassGuid, PCWSTR Enumerator,HWND hwndParent,,DWORD Flags) 获取所有查询设备集合。 classGuid 是需要原创 2017-10-15 10:55:27 · 419 阅读 · 0 评论 -
libevent 自定义事件处理
定义事件 struct Event{ int type; void* data; struct event ev; }; //回调函数处理 static void event_cb(evutil_socket_t fd, short event, void *arg) { Event* myEvent = (Event*)arg; if (!myEv...原创 2018-09-15 14:16:47 · 2414 阅读 · 0 评论 -
auto_deleter 使用,定义自动销毁对象
template <typename T> struct auto_deleter { typedef void(*D)(T*);//函数指针定义 T* data; D deleter; auto_deleter(T* _data, D _deleter):data(_data), deleter(_deleter) { } ...原创 2018-09-15 14:22:14 · 403 阅读 · 0 评论