
VC/MFC文章
文章平均质量分 64
在他乡奋斗
工作四年,一直从事C/C++开发工作
展开
-
腾讯云Https(SSL)证书申请与使用
腾讯云Https(SSL)证书申请与使用a. http代理可以级联,每个http代理负责管理自己的小网站。b. https部署在httpProxyServer级别,作为总入口,通过server访问子代理(client)的网站。c. 根据a,可以将一个较大的网站拆分成很多小型的网站开发,并且相互独立。d. 根据a,代理可以级联,进而实现逆向代理,既子代理(client)可以是局域网内的主机。e.根据b,所有网站都不需要考虑https部署,在入口处增加https.转载 2022-02-05 23:32:34 · 8911 阅读 · 0 评论 -
模仿MFC消息驱动机制
欢迎向我索要模仿MFC消息驱动的实例源码,希望能与更多的人讨论。邮箱:wjh_2010@163.com 在微软推出的MFC架构中,其消息驱动机制是其精髓,使用简单,效率高,而且思路清晰。如果能够模拟MFC的消息驱动机制,并添加一些自己的消息映射(例如消息可以用字符串表示),那么在程序的移植上就会有非常大的帮助。原创 2014-04-03 23:01:30 · 1922 阅读 · 0 评论 -
中转服务器
中转传输采用3层设计,分别为:用户事件处理层、命令解析层、消息事件驱动层。在事件驱动层中,将相关消息发送给对应的用户事件处理函数处理。 在命令解析层中发送和接收数据。在接收到数据时,需要验证数据合法性,收到一帧完整的数据后调用消息驱动层的send相关方法,调用该类方法后会将消息传递给用户事件处理中。在命令解析层中,会引入socket控制,同时管理多个socket的读。 在用户事件处理中,需要像MFC那样,定义消息处理的映射表。只有在用户层定义了消息映射表,命令解析层接收到的命令才能被处理,否则被原创 2014-04-20 20:25:29 · 4852 阅读 · 0 评论 -
x264内存泄露的解决办法
也许我使用的x264库比较原始,但经过测试,x264的库存在内存泄露.面对内存泄露,如何在尽量少改动的前提下解决这个问题。下面是我解决的思路:由于x264相关的内存分配与释放都有封装一层函数,我们可以在从这两个函数入手。将分配的内存记录到一个链表中,释放时从链表中删除。程序执行完后,如果链表中有记录,说明是内存泄露,清空链表即可。所以具体操作如下:1.增加一个链表;2.修改x264_malloc函数,将分配的内存记录在链表中;3.修改x264_free函数,从链表中释放节点;4.最后统一原创 2014-05-10 21:12:17 · 2182 阅读 · 0 评论 -
最大公约数算法
摘自x2/**************************************************************************** * x264_reduce_fraction: 求出最大公约数,并约去最大公约数 *********************************************************************原创 2014-05-07 13:51:53 · 547 阅读 · 0 评论 -
应用程序正常初始化失败0xc0150002 错误
出现该问题,一般是由缺少什么库文件或者库文件不兼容导致的。我的开发环境为vs2008,并在程序发布时放入了vs2008的运行库(参考附件4.1)。编译另外一个测试程序,在一样的环境中运行,却没有问题。所以排除vs2008库的问题。 该问题可能出现在使用的库上,如果使用的Lib和其dll文件不一致也有可能导致该问题。我专门编写一个测试程序,测试使用的Lib文件。 特别注意:如果依赖的一个lib文件,如果不使用其方法,该lib文件会被忽略。原创 2014-11-12 15:45:11 · 2560 阅读 · 0 评论 -
http服务器二次开发SDK
http协议能够将可见协议与二进制协议有效融合,并且其结构良好,分头域与实体两部分,而且头域的结构一致,并能够随意扩展。我们可以基于头域结构的形式,模拟MFC消息结构,设计一个高效,易扩展的解析架构。 本程序的设计初衷就是模拟MFC的消息机制来实现http头域的解析,并使得能够基于该结构实现私有协议的解析,实现http协议的基本框架,使得二次开发时能够基于该框架快速实现开发。 如果需要基于本架构实现http协议的二次开发,首先需要花时间区了解下http协议的基本结构。原创 2015-05-11 23:03:50 · 1558 阅读 · 0 评论 -
http服务器--session处理
http服务器--session处理1. 概述Session处理是一般带有会话功能服务器必须处理的功能.使用session记录一个会话,能够有效处理短连接或者断线重连的需求。session是存放在服务器的内容,具有如下特性:A. 时间性,创建的session如果长时间没有响应,则服务器需要删除该session,以防止session的无限增长。B. 唯一性,在同一个服务器上,sess原创 2015-06-01 23:08:35 · 2686 阅读 · 1 评论 -
RTSP二次开发包
RTSP二次开发包概述RTSP开源代码属Live555最为权威完整,其单线程、socket控制、任务调度等思想值得我们借鉴。单线程消除了所有互斥量,极大提高了程序的运行效率。Socket控制让一个socket对应一个回调函数,多客户端的处理高效完成。任务调度是该开源的经典,单线程的基本实现就是依赖于任务调度,这对于我们以后研究消息机制会有很大的帮助。本二次开发包结合了Live555的基本思想,吸收MFC消息机制。原创 2015-11-29 13:24:53 · 899 阅读 · 0 评论 -
geohash算法
geohash算法的原理是将区域进行4分,让后将每一块区域继续进行四分,直到符合精度要求停止,这样得到一个二进制的数据,然后将这二进制的数据进行base32转换得到一个字符串原创 2016-05-13 23:08:25 · 767 阅读 · 0 评论 -
脚本解析器
命令脚本解析器,自创建一种脚本语法,解释执行它。目前脚本形式类似于命令,没有变量类型的概念,关键字为=、$()、if、else、while、break、continue ,解释与C语言一样。原创 2016-05-07 10:18:43 · 5720 阅读 · 1 评论 -
vs环境配置属性介绍
vs环境虽然常有更新,但基本配置一致,所以这边使用vs2008的配置说明如下:常规配置调试属性:C/C++属性:链接器:原创 2017-01-19 21:27:07 · 501 阅读 · 0 评论 -
自定义WM_NOTIFY消息
自定义WM_NOTIFY消息习惯了用自定义用户消息进行各种状态的通知,特别是子窗口与父窗口之间的交互。但ON_MESSAGE没有控件ID的限制,如果有多个子窗口发送同一个消息给父窗口时,父窗口就不知道哪个窗口发的(当然可以用参数进行约定)。如何解决这个问题?有几种思路:1.重写ON_MESSAGE宏,增加ID的限制;2.模拟按钮单击消息;3.自定义WM_NOTIFY消息。基于这原创 2013-10-30 09:36:58 · 4592 阅读 · 0 评论 -
编译sqlite动态库及测试
工程下载:http://download.youkuaiyun.com/detail/wjh_monkey/56610671.关于sqlite数据参考百度百科:http://baike.baidu.com/view/19310.htmSQLite是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。不像常见的客户-服务器范例,SQL原创 2013-06-27 20:30:21 · 2155 阅读 · 0 评论 -
安全可靠的3G传输中IP地址的解决方案
安全可靠的3G传输中IP地址的解决方案1.概述 采用3G网络做为传输方式时,会碰到服务器IP地址不可知的问题。如何解决这个问题,根据实际情况不同的公司或者个人会采取不同的方式。有中间服务器进行中转的方式,有采用绑定域名的方式(如绑定花生壳软件),有借用中间服务器保存服务器IP地址的方式等。各种不同的方式都各有优劣,这边我们提供一种节约成本、易扩展并且开发容易的解决方案。基原创 2013-03-01 00:00:33 · 1481 阅读 · 0 评论 -
base64 加密算法的实现
1. 关于base64编码Base64编码将3个8位的字符串转换为4个6位的字符串。转换后的编码用64个字符对应。在网上有很多关于base64加密解密的说法,我感觉很多不是真正的加密,因为如果不是自己设置密匙,总会觉得怪怪的,会认为是采用统一的密匙加密(这样就很容易破解了原创 2011-08-26 14:26:08 · 8016 阅读 · 1 评论 -
DirectShow 视频捕获(2)
Capture Performance原文:http://msdn.microsoft.com/en-us/library/aa452496.aspx这部分描述一些使用directShow时主要影响捕获性能的因素。要看整体的DirctShow结构看View Capture章节。你为设备组件选择的颜色空间对你设备的捕获性能有重要的影响。最主要考虑的因素是捕获的数据从一种颜色空间转换到另一翻译 2011-11-15 11:16:59 · 1276 阅读 · 0 评论 -
DirectShow 视频捕获(3)
Capture Graph Builder原文:http://msdn.microsoft.com/en-us/library/ms940047.aspx执行视频或者音频捕获的过滤图表叫做捕获图表。捕获图表经常比 文件回放图表复杂。为了应用程序更简单的创建捕获图表,DirectShow提供了一个Capture Graph Builder 帮助对象。Capture Graph Builder翻译 2011-11-15 11:23:53 · 918 阅读 · 0 评论 -
DirectShow 视频捕获(5) 基类如何实现连接
How the Base Classes Implement Connection原文:http://msdn.microsoft.com/en-us/library/ms899460.aspx CBasePin类和它的派生类CBaseOutputPin和CBaseInputPin实现了大部分共同的连接情况下的机制,大部分都可以在派生类中重写,以便更多的过程控制。连接过程依赖于下面翻译 2011-11-17 10:50:00 · 1647 阅读 · 0 评论 -
DirectShow 视频捕获(6) 数据在过滤器图表中流动
Data Flow in the Filter Graph数据在过滤器图表中流动网址:http://msdn.microsoft.com/en-us/library/ms899430.aspx这部分主题讨论媒体数据如何通过过滤器图表流动。为准备写自定义的开发者做准备。应用程序开发人员不必担心这里所涉及的科目。下面的主题集中在使用IMemInputPin和IMemAllocato翻译 2011-11-18 10:34:05 · 794 阅读 · 0 评论 -
DirectShow 视频捕获(7) 推和拉模式
Push versus Pull推和拉模式网址:http://msdn.microsoft.com/en-us/library/ms899486.aspx源过滤器的作用是引入图形数据。它可以按照两种模式,推模式或拉模型。在推模式,源过滤器在自己的线程中创建采样并将采样传递到下游过滤器中。下游过滤器处理采样并且传递到下一个过滤器中。每一个过滤器重复这样的步骤直到渲染器。在拉模式,翻译 2011-11-18 10:49:42 · 1527 阅读 · 0 评论 -
DirectShow 视频捕获(8) 线程使用情况
Thread Usage 线程使用情况网址:http://msdn.microsoft.com/en-us/library/ms899503.aspx 过滤器图表管理器在自己的线程中运行。现在执行的操作例如增加一个过滤器到图表中,连接引脚,和改变图表的状态(运行、暂停和停止)。过滤器也创建线程。一个推模式的源过滤器可以创建一个传递数据的线程。一个拉模式的源过滤器(如文件阅读翻译 2011-11-18 11:00:53 · 845 阅读 · 0 评论 -
DirectShow 视频捕获(9) 生成新的采样
Generating New Samples生成新的采样网址:http://msdn.microsoft.com/en-us/library/ms899448.aspx 这部分描述源过滤器如何生成新的采样推模式在推模式,源过滤器启动过程,步骤如下:源过滤器调用IMemAllocator::GetBuffer获取一个空的媒体采样源过滤器填充这个采样。如何填充完全决定于翻译 2011-11-18 11:25:39 · 844 阅读 · 0 评论 -
DirectShow 视频捕获(1)
MSDN 原文地址 http://msdn.microsoft.com/en-us/library/ms940077.aspx。声明:本人的英文水平实在不好,因为每次看msdn的时候都需要翻译一下,索性将文章翻译下一,以后就看自己的译文。有很大翻译不到位的地方,请大家多多包涵。 在这篇文章中,视频捕获是指从一个硬件设备中获取视频的应用。代表性的视频捕获设备是摄像机,当然也可翻译 2011-11-13 19:12:13 · 1842 阅读 · 0 评论 -
DirectShow 视频捕获(4) 过滤器连接过程概述
Overview of the Filter Connection Process原文地址:http://msdn.microsoft.com/en-us/library/ms899482.aspx 在两个过滤器连接之前,他们必须增加到过滤器图表中。当使用智能连接(例如,调用IMediaControl::RenderFile)的方式创建一个过滤器图表,过滤器图表管理器基于通过rende翻译 2011-11-17 09:24:25 · 1587 阅读 · 0 评论 -
获取主机IP地址
以下代码的参考网上找的资料,具体哪个网页记不清了。希望对其他人有用。需要:#include "winsock2.h"#pragma comment( lib, "ws2_32" ) 代码如下:CString GetHostIp(){ char szHostName[128]; const char* pszAddr = NULL; struct hosten转载 2013-02-28 23:17:59 · 836 阅读 · 0 评论 -
CMFCTabCtrl 控件中的bug
作者:吴建凰 Email:wjh_2010@163.com,转载请标明出处,谢谢。最近在做VC的项目,由于VS2008之后增加了一些较为好用的控件,如CMFCRibbonBar、CMFCTabCtrl等,很多人vs2008之后的环境来写应用程序。但是我使用CMFCTabCtr原创 2011-09-11 10:56:41 · 4390 阅读 · 2 评论