VC++
文章平均质量分 80
xumaojun
这个作者很懒,什么都没留下…
展开
-
window上ASIO
花了足足3天时间,外加1天心情休整,终于在第5天编写出了一个能运行的基于asio和thread_group的框架,差点没气晕过去,把源码都看懂了才感觉会用了。测试了一下,debug下一万次回应耗时800+毫秒,release下是200+毫秒,机器配置双核2.5G英特尔,4个线程并行工作,无错的感觉真好,再也不用担心iocp出一些奇怪的问题啦,因为是巨人们写的实现,呵呵。进入正题,简要说一下as...转载 2019-01-05 14:09:10 · 1674 阅读 · 0 评论 -
windows下hiredis的编译
windows下hiredis的编译,有需要的朋友可以参考下。果然,高端的程序员真心是鸟都不鸟windows的,redis的客户端找了一圈愣是没有C++的windows版本我要做个windows上的C++的服务器都没办法和redis交互github上所有能试的我都试过了,要么是只支持unix,要么是怎么编译都不通过,焦头烂额中然后我总结了网上无数的教转载 2016-06-01 18:37:37 · 7071 阅读 · 0 评论 -
gsoap 中文乱码问题
中文乱码与locale有关,这里给出两种解决方法:一、设置locale 1、setlocale(LC_ALL, "");//设置程序locale为系统默认(我的系统是zh_CN.utf8),gsoap内部进行编码转换依赖于locale,所以必须设置为中文环境。 2、gSoap初始化 gSoap生成的代理类名字为:CSmsProxy转载 2015-03-10 14:34:01 · 952 阅读 · 0 评论 -
gsoap中文乱码及内存清理等问题的解决方案
gsoap中文乱码的问题 -- 拔剑,2010-08-31 一、 问题和分析 gsoap在调用Webservice过程中,如果字符串中有汉字,很容易出现乱码。 由于网络间一般用UTF8表示字串(ANSI字串- (char 的传统表示需要两个字符,而在wchar_t宽字符串中只需一个字符表示。 一个汉字用UTF8表示通常占用3个转载 2015-03-10 14:34:08 · 1729 阅读 · 0 评论 -
OCX通过IDispatch传递结构体的4种方法
1)Pass each structure member as an individual method parameter.2)Serialize the structure to an opaque array of bytes.3)Serialize the structure to an array of VARIANTs, one array element per st转载 2014-09-03 11:14:54 · 3088 阅读 · 0 评论 -
vc++实现snmp编程
vc++实现snmp编程转载 2014-07-02 17:02:08 · 1183 阅读 · 0 评论 -
Dll注入经典方法完整版
Pnig0s1992:算是复习了,最经典的教科书式的Dll注入。总结一下基本的注入过程,分注入和卸载注入Dll:1,OpenProcess获得要注入进程的句柄2,VirtualAllocEx在远程进程中开辟出一段内存,长度为strlen(dllname)+1;3,WriteProcessMemory将Dll的名字写入第二步开辟出的内存中。4,CreateRemo转载 2013-12-09 20:58:58 · 4563 阅读 · 0 评论 -
Enumerate and Change Display Modes
http://www.codeproject.com/Articles/2518/Enumerate-and-Change-Display-Modes IntroductionThis article will briefly describe how to get all possible display modes for a system, including the curre转载 2013-10-18 16:38:00 · 784 阅读 · 0 评论 -
QQ2013解析最新QQ加密算法VB登陆方法
http://xmit.org.cn/forum.php?mod=viewthread&tid=3409&extra=page=1&page=1&今天开始想写个验证QQ密码的工具,以前写过一个QQ验证器的程序,就拿了那个代码试了一下居然不能同。就到QQ登陆页面去抓包。xmit.jpg (110.62 KB, 下载次数: 111)下载附件 保存到相册2013-3转载 2013-10-14 10:48:38 · 2908 阅读 · 0 评论 -
QQ2013的PC版协议,0825包和0826的数据分析
http://www.cctry.com/thread-146696-1-1.html 最近写个QQPC协议返回当前QQ各种状态的东东。网上很多地方说的都有点不太明白,而且最新协议的也很少,基本都是以前的。苦逼之下借鉴各种资料,熬了几天。终于写出来了。因为只返回各种状态,,所以偶分析到0826这个数据包。后面的也就没分析了。虽然东西不多。。也希望能帮到对这方面有星期的朋友吧。。下面是分析的转载 2013-10-13 15:16:52 · 2258 阅读 · 1 评论 -
QQ2012 Beta3->QQ2013 Beta1聊天协议剖析
http://www.cnhonkerarmy.com/forum.php?mod=viewthread&tid=153514 背景QQ,一个通信工具,号称拥有N亿,现在注册QQ已经是10位数了,如果QQ注册的号码是不断递增的话,那么QQ应该已经被注册了至少10亿次。在中国,只要你是经常上网的网民,手中必须得有一个QQ号,当然你也可以没有,但你的朋友、同学、亲戚、同事全都有,大家都通过转载 2013-10-13 15:13:12 · 1311 阅读 · 0 评论 -
Hiredis_API说明
同步的API接口redisContext *redisConnect(const char *ip, int port);void *redisCommand(redisContext *c, const char *format, ...);void freeReplyObject(void *reply);1)建立连接redisContext *c = redi转载 2016-06-06 18:32:18 · 2031 阅读 · 0 评论 -
带有详细注释的 Redis 3.0 代码 (github.com)
Redis 3.0 源码注释本项目是注释版的 Redis 3.0 源码, 原始代码来自: https://github.com/antirez/redis 。这份注释是我在创作新版《Redis 设计与实现》期间, 为了了解 Redis 的内部实现而制作的, 所有在书中有介绍的内容, 在源码中都进行了相应的注释。在注释的过程中, 除了少量空格和空行方面的调整外, 没有对原始代转载 2016-06-06 18:48:51 · 1036 阅读 · 0 评论 -
Windows上安装Net-SNMP5.7
本文简要记录了在Windows上安装 net-snmp 5.7.1的步骤,最新的源码包可上net-snmp官方网站下载。安装net-snmp 5.7.1之前需要先安装VS2010 Win32 OpenSSL v1.0.1f ActivePerl 5.16.3安装步骤如下: 停止Windows7系统自带的Windows SNMP Service,在 我的电脑-> 管理 -&...转载 2018-10-26 16:47:29 · 11749 阅读 · 1 评论 -
windows下使用net-snmp实现agent扩展(四)
在前三篇的内容里,介绍了使用net-snmp实现agent的Get/Set命令,下面介绍一下发送trap消息。发送trap消息时,系统默认的端口是162。使用下面的代码,可以实现trap消息的发送。//该函数发送实时报警信息。与发送一般信息端口不同void init_alarm_info(void){DEBUGMSGTL((“dcsserver”,“initializing (sett...转载 2018-10-09 18:29:36 · 722 阅读 · 0 评论 -
windows下使用net-snmp实现agent扩展(三)
时间隔得太长了,我都快忘了什么是snmp了,知识啊知识,很容易在不用的时候忘却,也可能是自己脑袋不好使了吧?翻了翻代码,赶紧总结下,不然真不会了……在上篇博客中,实现了get/set一个字符串型变量,现在来实现对多个字符串变量的get/set。假设要实现获取CPU利用率、内存占用率和磁盘占用率的的功能,建立两个文件:alarmInfo.h和alarmInfo.c。在alarmInfo.h中...转载 2018-10-09 18:28:22 · 361 阅读 · 0 评论 -
windows下使用net-snmp实现agent扩展(二)
刚刚实现了int型的get命令,可能更多的情况下,我们更需要的是字符串类型的。在实现int型的时候,用到了netsnmp_register_int_instance这个函数,很自然想到如果是string型的,用类似的netsnmp_register_string_instance,或者netsnmp_register_char_instance不就行了?很可惜的是:net-snmp并没有提供这两个...转载 2018-10-09 18:24:28 · 621 阅读 · 0 评论 -
windows下使用net-snmp实现agent扩展(一)
项目上需要用snmp来做告警监控管理,达到对系统的运行状态的监测。这几天研究了一下,发现网上资料比较少,大多数抄来抄去,能够正确运行的更少。所以,总结了一下,把相关的代码放上来,希望能够帮助同样遇到困惑的朋友。 项目名称为DCS系统,采用VS2010开发,DCS作为被监测的对象,因此需要实现snmp的Agent扩展。最开始的方法,采用了WinSnmp,发现步骤很繁琐,需要编写dll,需要手动修...转载 2018-10-09 18:21:34 · 2302 阅读 · 0 评论 -
Windbg查看调用堆栈(k*)
https://www.52pojie.cn/thread-664189-1-1.html 无论是分析程序崩溃原因,还是解决程序hang问题,我们最常查看的就是程序调用堆栈。学会windbg调用堆栈命令,以及理解堆栈中的各个参数的意义就显得至关重要。上图就是一个典型的Windbg堆栈,如果不理解ChildEBP、RetAddr、Args to Child等参数意义,以转载 2017-11-18 10:01:56 · 11644 阅读 · 0 评论 -
在MFC中使用OTL库连接数据库
http://hyhvi.iteye.com/blog/1549639在Win32控制台程序下,要使用OTL库,只需在程序加入OTL头文件,并写上以下两句代码即可(ODBC方式): #define OTL_ODBC #include "otlv4.h"但是在编写MFC程序的时候,单单用以上的做法是不行的,编译的时候会出现转载 2017-08-02 18:37:29 · 383 阅读 · 0 评论 -
Variant 与 内存泄露
http://blog.chinaunix.net/uid-10386087-id-2959221.html今天遇到一个内存泄露的问题。是师兄检测出来的。Variant类型在使用后要Clear否则会造成内存泄露,为什么呢?Google一下找到下面一篇文章,主要介绍了Com的内存泄露,中间有对Variant的一些解释吧。1. 引用计数泄漏由于C++的一些对转载 2017-03-16 15:14:32 · 2015 阅读 · 0 评论 -
linux下使用hiredis异步API实现sub/pub消息订阅和发布的功能
最近使用redis的c接口——hiredis,使客户端与redis服务器通信,实现消息订阅和发布(PUB/SUB)的功能,我把遇到的一些问题和解决方法列出来供大家学习。 废话不多说,先贴代码。redis_publisher.h/******************************************************************转载 2016-06-01 18:58:13 · 7770 阅读 · 4 评论 -
句柄泄漏调试经验
句柄泄漏检测-简单在调试之前首先确定是不是真的发生了句柄泄漏,简单的检测方法是通过任务管理器来查看进程的句柄数是不是居高不下,任务管理器默认不显示句柄数,要查看进程的句柄数需要先切换到进程选项卡,然后单击“查看”菜单,选择“选择列”,然后勾选“句柄数”。句柄泄漏检测-更多信息任务管理器只能简单检测句柄数,如果要获得更详细的信息,可以使用Process Explorer(官方下载地址转载 2017-01-23 11:38:17 · 2852 阅读 · 0 评论 -
用VC++制作QQ自动登陆软件
http://www.vckbase.com/index.php/wv/1390这里要先用SPY++来找到QQ登陆框的各个窗口标题或ID号。 原理:其实不难,只要找到QQ登陆框的号码输入和密码输入框,然后向其填数据就是了。这里填数据就是向其发送消息,模拟键盘 罢了。 一、先是查看QQ登陆框是否开启,否则开启它。 view sourceprint?转载 2013-10-10 10:36:00 · 716 阅读 · 0 评论 -
IOCP相关文章链接
http://gamebabyrocksun.blog.163.com/转载 2013-10-09 11:09:34 · 693 阅读 · 0 评论 -
IOCP+WinSock2新函数打造高性能SOCKET池
http://gamebabyrocksun.blog.163.com/blog/static/57153463201021554716831/ 在前一篇文章《WinSock2编程之打造完整的SOCKET池 》中,介绍了WinSock2的一些新函数,并重点详细介绍了什么是SOCKET池,有了这个概念,现在就接着展开更深入的讨论。首先这里要重点重申一下就是,SOCKET池主要指的是使用面转载 2013-10-09 11:07:55 · 2347 阅读 · 0 评论 -
重叠IO
<br /> <br />// NetWork.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <Winsock2.h>#include <Windows.h>#include <process.h>#pragma comment(lib, "WS2_32.lib")#define MAX_BUFFER 256#define MAX_TI转载 2011-05-08 19:25:00 · 567 阅读 · 0 评论 -
[转]两个经典的windbg调试案例,值得学习
<br />1. 调试Bug的神兵利器:通过WinDbg条件断点收集Log<br /><br />原文地址:http://blogs.msdn.com/yizhang/archive/2009/03/30/bug-windbg-log.aspx<br />调试Bug的神兵利器:通过WinDbg条件断点收集Log<br /><br />前段时间花了几天一直在用WinDbg调试一个比较棘手的Bug。这个Bug是C# Team那边发现的,他们的Testcase跑大概10分钟左右会出一个在CLR内部的ASSERT。转载 2010-11-12 09:55:00 · 627 阅读 · 0 评论 -
使用Excel COM组件导出数据后释放 Excel进程不能正常结束
分析一下自己的错误: 首先用Range的GetItem取到的是一个VARIANT,内含IDispatch接口,我一直以为内含的是一个BSTR,所以我已一开始直接用 _bstr_t bs(rg.GetItem(_variant_t((short)1),_variant_t((short)2))); 来获取字符串(主要是的确能获得字符串),根据lop5712(LOP)的提醒,发现返回的VARIAN原创 2010-05-27 16:02:00 · 1560 阅读 · 2 评论 -
完成端口(IOCP) 也可以这样用~~呵呵~ 用来充当线程之间的数据队列~
// Test32.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include stdlib.h>#include windows.h>#include process.h>#include iostream>HANDLE m_hCompletionPort;volatile BOOL m_bShutDown;struct TESTOVERLAPPED<im转载 2009-12-31 22:43:00 · 616 阅读 · 0 评论 -
一个对Winsock 完成端口模型封装的类【2】
BOOL CompletionPortModel::ThreadLoop()/*++ Fucntion Description: 主线程循环,用WaitForSigleObject等待m_hEvent,已经发出的AcceptEx()调用耗尽,FD_ACCEPT事件将被触发,WaitForSigleObject成功返回,然后调用PostAcceptEx()来新发出10个AcceptEx()调转载 2010-01-01 11:27:00 · 589 阅读 · 0 评论 -
一个对Winsock 完成端口模型封装的类
2009-03-28 14:02源代码说明: 在WINDOWS下进行网络服务端程序开发,毫无疑问,Winsock 完成端口模型是最高效的。Winsock的完成端口模型借助Widnows的重叠IO和完成端口来实现,完成端口模型懂了之后是比较简单的,但是要想掌握 Winsock完成端口模型,需要对WINDOWS下的线程、线程同步,Winsock API以及WINDOWS IO机制有转载 2010-01-01 11:24:00 · 577 阅读 · 0 评论 -
VC中使程序最小化到系统托盘区
//定义托盘图标结构体 NOTIFYICONDATA nid; #define WM_ICONNOTIFY WM_USER + 909 //图标响应消息(lParam) #define ID_TASKBARICON 100 //参数(wParam) //初始化系统托盘图标 void OnBtnMinimize() { //初始化系统托盘图标 nid.cbSize = sizeof(NOTIFYIC转载 2009-12-25 19:41:00 · 798 阅读 · 0 评论 -
VC 制作系统托盘程序实现将窗口最小化到系统托盘
VC 制作系统托盘程序实现将窗口最小化到系统托盘2008年01月11日 星期五 10:24前段时间因为要用到系统拖盘,所以研究了一下,在这里记录一下,免得以后忘了 ^_^先在类中定义一个结构变量NOTIFYICONDATA pnid;然后在OnInitDialog进行初始化 pnid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);//该转载 2009-12-25 17:30:00 · 648 阅读 · 0 评论 -
VC最简版图片打印程序
自认为注释已经很详细了,没有什么可说的,以后再用的时候如果还有哪不明白的就当长教训了BOOL CMYDlg::PrintPic(CString strFileName,int iCopies,CString strPrintName){ CDC dc; CPrintDialog printDlg(FALSE); HGLOBAL hDevMode; HGLOBAL hD转载 2010-02-01 22:27:00 · 1608 阅读 · 0 评论 -
转载 使对话框程序具有xp 风格
在VS 2003 环境中1.在工程的目录下建一个名为 xpapp.manifest的文件. 把下面的内容拷到这个文件中: version="1.0.0.0" processorArchitecture="X86" name="Microsoft.Windows.ViPod" type="win32" /> Your app description here原创 2009-09-03 13:15:00 · 490 阅读 · 0 评论 -
变参函数
#include "stdafx.h"#include int Myprintf(char* format,...){ va_list ap; va_start(ap, format); int n = vprintf(format, ap); va_end(ap); return n;} int Mysprintf(char* buffer, char原创 2011-06-07 20:17:00 · 543 阅读 · 0 评论 -
IOCP一
<br />// IOCP.cpp : Defines the entry point for the console application.////#include "stdafx.h"#include <WinSock2.h>#include <Windows.h>#include <process.h>#pragma comment(lib, "WS2_32.lib")#define MAX_BUFFER 256#define MAX_TIMEOUT转载 2011-05-08 19:29:00 · 522 阅读 · 0 评论 -
WinSock2编程之打造完整的SOCKET池
http://gamebabyrocksun.blog.163.com/blog/static/571534632010115104634310在Winodows平台上,网络编程的主要接口就是WinSock,目前大多数的Windows平台上的WinSock平台已经升级到2.0版,简称为WinSock2。在WinSock2中扩展了很多很有用的Windows味很浓的SOCKET专用API,为Win转载 2013-10-09 11:01:06 · 2748 阅读 · 0 评论 -
Screen Capture
#define PW_WINDOW 9001#define PW_CLIENT 9002HBITMAP CMyProgramDlg::CopyScreenToBitmap(LPRECT lpRect){ HDC hScrDC, hMemDC; // screen DC and memory DC转载 2013-09-15 11:03:15 · 666 阅读 · 0 评论