
C++
文章平均质量分 65
风水月
毕业于北京航空航天大学,精通JAVA WEB、C++、Andorid,做过管理系统、Android客户端、视频监控、自动化控制等项目。
展开
-
VS2017创建MFC ActiveX工程制作IE OCX插件
最近看了一个采用MFC ActiveX封装DLL的OCX项目的源码,现将学习到的内容记录下来。本次的学习记录计划写如下几个主题:1.VS2007创建MFC ActiveX工程制作IE OCX插件2.VS2007中MFC ActiveX工程如何调试3.在IE中使用JS调用第三方DLL函数4.通过cab包由IE自动注册ActiveX5.ActiveX数字签名...原创 2019-07-08 21:48:42 · 2111 阅读 · 0 评论 -
tinyxml解析UTF-8字符集的xml
今天在程序中遇到,当通讯的xml里面含有中文字符的时候,tinyxml解析时总是报错,不能进行解析,查找原因后发现是tinyxml在解析UTF-8字符集的xml时,需要特殊指定字符集才行,下面是对于读取文件和直接解析字符串所需的tinyxml函数的使用方式。一、需解析的xml 2 1 0 全天侯模板 111111111111111111111原创 2014-06-12 16:09:18 · 13216 阅读 · 1 评论 -
Poco数据库操作
1.Poco进行数据库操作的步骤一般是:a. 创建会话(session)b. 从DB中读写数据(into, use)c. 使用statementsd. 使用容器(Collection) (数据,集合...)e. 使用limit限定f. 如何使用复杂的数据类型(如何将一个C++对象映射到数据库的表下面是一个简单的操作数据库的示例:#include "Poc原创 2014-03-26 16:26:30 · 10595 阅读 · 2 评论 -
C++开源跨平台类库集
C++开源跨平台类库集只学C++语言层面的东西不行, 得放开眼界, 关注这些别人提供的库, 可以事半功倍. 在如下的库支持下,开发的系统可以很方便移植到当前大部分平台上运行而无需改动,只需在对应的平台下用你喜欢的编译器重新编译即可. 经典的C++库STLport---SGI STL库的跨平台可移植版本,在以前有些编译器离符合标准比较远的情况下转载 2014-03-26 11:00:17 · 1816 阅读 · 1 评论 -
【Poco】Poco vs Boost
POCO的优点: 1) 比boost更好的线程库,特别是一个活动的方法的实现,并且还可设置线程的优先级。 2) 比 boost:asio更全面的网络库。但是boost:asio也是一个非常好的网络库。 3) 包含了一些Boost所不包含的功能,像XML,数据库接口等。 4) 跟Boost相比,集成度更高,是更加统一的一个库。 5) Poco的c++代码更清洁,现代和易理解。对不转载 2014-03-26 13:28:30 · 3484 阅读 · 0 评论 -
SOCI、LiteSQL、POCO数据库访问类库对比
最近在做视频的开发,其中视频的设备接入管理服务器、流媒体管理服务器、中心服务器都涉及到了数据库的操作,同时需要兼容大多数版本的数据库,包括mysql、sqlite、oracle。公司原来使用的是ado来进行数据库的开发的, 但是考虑到目前需要兼容linux,目前使用Poco框架封装的数据库模块进行开发。根据项目情况我对soci、litesql、poco这三个框架进行了简单的学习来确定选原创 2014-03-26 14:42:37 · 12964 阅读 · 0 评论 -
SOCI的编译注意事项(通过oracle, mysql, sqlite, boost)
SOCI的编译注意事项(通过oracle, mysql, sqlite, boost)1. 修改CMakeLists.txt 在CMAKE_MODULE_PATH变量定义后加入如下语句[cpp] view plaincopyprint?#add by Snoopy #设置boost的相关变量 set(CMAKE_INCLUDE_PATH "F:/bo转载 2014-03-26 11:49:53 · 4210 阅读 · 1 评论 -
PocoDataMySQL与Boost::asio共同使用时出现“用户回调期间未处理异常”解决方法
最近在做视频产品的开发,在网络交互上选择的是boost的asio库,由于boost没有提供数据库访问的库,所以采用了Poco库,但是在项目中同时使用这两个库--Poco库引入PocoDataMySQL的头文件Poco/Data/MySQL/MySQLConnect.h,boost库调用了tcp::acceptor的async_accpet方法时,程序报“用户回调期间未处理异常”异常,报错位置在Po原创 2014-04-17 18:51:17 · 3125 阅读 · 0 评论 -
视频聊天vs2003工程转vs2010工程问题记录
今天需要将一份vs2003上面的工程转成vs2010下面的,在转换过程中出现了如下问题,特作此记录。1.头文件streams.h与qedit.h找不见streams.h是directshow工程中原创 2013-12-02 13:35:52 · 2066 阅读 · 0 评论 -
代理服务器学习日志(一)
最近接到一个任务-研究代理服务器tinyproxy,研究tinyproxy源码,实现可以缓存一部分网页,当用户浏览网页信息时,不需再连接主服务器,只需从代理服务器中读取就行,同时还需要设计好代理服务器上的网页如何保持和服务器上的网页一致(即代理服务器上的网页都是最新的网页)。任务来的有些突然,一直在windows环境下编程,现在需要在linux环境下进行开发,原来一直对服务器代理不是很理解,现在任原创 2013-11-03 21:42:43 · 3993 阅读 · 0 评论 -
LibCurl HTTP部分详细介绍
目录索引:一、LibCurl基本编程框架二、一些基本的函数三、curl_easy_setopt函数部分选项介绍四、curl_easy_perform 函数说明(error 状态码)五、libcurl使用的HTTP消息头六、获取http应答头信息七、多线程问题八、什么时候libcurl无法正常工作九、关于密码十、HTTP验证十一、代码示例 1.基本的htt转载 2014-09-24 22:09:43 · 74253 阅读 · 4 评论 -
Libcurl上传图片
最近使用C++做一些编程,JAVA中采用HTTP协议通信很简单,我们熟知的HTTPClient就可以完成通信。在C++中BOOST库仅仅将TCP/UDP协议进行了很好的封装,但是HTTP需要我们自己在编写一部分代码才能很好的同步HTTP来完成客户端与服务器端的信息交互。libcurl对HTTP等协议进行了很好的封装,于是采用libcurl来完成图片上传的功能。1.libcurl简单认识li原创 2014-09-24 22:26:42 · 8442 阅读 · 3 评论 -
Windows平台源码移植到Linux平台——采用dsapi开发domino登录认证Linux动态库
在文章 采用dsapi开发domino登录认证 中记录了windows平台如何开发domino登陆认证动态库,本篇将记录如何将该源码移植到Linux平台,编译出Linux平台支持的动态链接库so文件。1、Linux平台编译环境配置本人采用的Linux系统是centos7,版本号如下: 采用gcc进行程序的编译,gcc通过如下方式安装:[zhl@localhost ~]#y...原创 2018-03-16 14:08:49 · 667 阅读 · 0 评论 -
C++完成Oracle存储过程批量插入(一)
为了满足大数据量的批量插入这个需求,最近研究了一下Oracle数据库的批量插入这块儿,本篇先介绍一下这两天来所了解到的以及一次不成功的C++进行存储过程批量插入方案。一.Oracle处理批量插入存储过程1.Oracle处理批量插入涉及到的相关概念有:Type、bulk collect、Oracle数组等。现在对它们依次简单的介绍一下。1)TypeType主要用于用户建立Oracle原创 2014-09-01 22:58:05 · 4557 阅读 · 0 评论 -
C++完成Oracle存储过程批量插入(二)
上篇文章简单的介绍了一下oracle参数是Object类型的数据库存储过程,以及JAVA使用JDBC去调用该类的存储过程的方法。但是我需要的是C++下的方案,使用Poco库未发现任何可以调用该类型存储过程的方法,但是功能还是需要实现的,后来发现Oracle支持XML的解析,于是有了下面的方案,即存储过程的参数为CLOB类型,C++按照传入XML格式字符串的方式调用存储过程,在存储过程中解析xml后原创 2014-09-01 23:19:02 · 2378 阅读 · 0 评论 -
采用dsapi开发domino登录认证
dsapi开发domino登录认证的资料十分少,但是官方的资料讲解的很详细,要编写dsapi程序看官网的介绍十分必要,但是官网的资料仅仅提供了一个简单的登录demo的示例,复杂的功能还需要自己配合api去琢磨研究,现将自己研究的做一个记录。1.domino环境配置介绍domino软件下载地址:2.dsapi开发资料3.dsapi研究内容原创 2016-12-04 01:50:06 · 3424 阅读 · 2 评论 -
关于 error: LNK1123: failure during conversion to COFF: file invalid or corrupt 错误的解决方案
重装了VS2010,在编译程序时出现了“error: LNK1123: failure during conversion to COFF: file invalid or corrupt ”这个错误,意思是由于COFF标识转换失败。而在连接中完成此项工作的是cvtres.exe。这个错误的原因是存在多个版本的cvtres.exe。系统目录:C:\Windows\Microsoft.NET\F原创 2015-02-26 23:20:46 · 13830 阅读 · 0 评论 -
loadrunner测试TCP协议服务器性能
最近对服务器的性能感兴趣,于是开始研究了一阵子loadrunner如何做采用TCP协议交互的服务器的性能测试,对loadrunner不是很熟悉,所以一开始也走了一些弯路,现将学习的过程记录下来,为以后做参考吧。TCP协议的服务器的性能测试,我想大家都会选择loadrunner的winsocket协议进行测试,我也是采用此种方式。下面将逐一记录如何使用此协议做性能测试。1.采用DLL文件方式原创 2015-01-04 22:50:30 · 16875 阅读 · 0 评论 -
了解 Boost Filesystem Library
C++ 语言(实际上是 C++ 标准)的最常见问题之一是,缺乏定义良好的库来帮助处理文件系统查询和操作。由于这个原因,程序员不得不使用本机操作系统提供的应用程序编程接口(Application Program Interfaces,API),而这使得代码不能在平台之间移植。以下面的简单情况为例:您需要确定某个文件是否是 Directory 类型。在 Microsoft® Windows® 平台转载 2014-12-24 21:07:53 · 2517 阅读 · 0 评论 -
C/C++文件操作
网络上资源如此详实,习惯了使用一些开源库或者使用网上的一小段的代码来完成功能,因此对一些基本的概念渐渐的开始淡忘,今天在编写柜位预测编码时涉及到了C/C++文件存取的操作,因此今天特整理了一下这方面的相关知识。1.文件操作相关的基本概念1)数据流程序与数据的交互以流的形式进行。2)缓冲区用于存放准备执行的数据。在文件操作中,有两种方式进行文件处理:a.通过缓冲区进行文件处理原创 2014-12-24 21:13:55 · 2081 阅读 · 0 评论 -
柜位预测(二)——神经网络-FANN库
可以使用最小二乘法来进行柜位预测,但是其预测的时间短,不能很好的用于实践当中。在查询了一些资料后,神经网络是解决该问题的最好的方法。神经网络是什么,我们应该如何使用它来完成功能,我会在本篇和后续的文章中逐一介绍自己所学的心得。本篇是翻译文章,对神经网络库——FANN库进行了介绍。本人英语水平有限,有翻译不当的地方望指出。本篇译文的原文可以从此下载。简化神经网络多年前,好莱坞科幻片《翻译 2014-11-24 16:17:13 · 8029 阅读 · 0 评论 -
代理服务器学习日志(二)
这边文章主要记录什么是反向代理,如何配置tinyproxy使其成为反向代理服务器。1.什么是反向代理反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。2.tinyproxy反向代理配置a.打开ti原创 2013-11-04 21:56:59 · 7837 阅读 · 1 评论 -
代理服务器学习日志(三)- Eclipse编译tinyproxy
今天会记录一下代理服务器tinyproxy在eclipse下编译及调试。原创 2013-11-18 14:53:40 · 3413 阅读 · 0 评论 -
The study of Programming Windows with MFC--Common Control
<br />1.The Common Controls<br />Control TypeWNDCLASSWNDCLASS AliasMFC ClassAnimation"SysAnimate32"ANIMATE_CLASSCAnimateCtrlComboBoxEx*"ComboBoxEx32"WC_COMBOBOXEXCComboBoxExDate-Time*"SysDateTimePick32"DATETIMEPICK_CLASSCDateTimeCtrlHeader"SysHeader32"WC_H原创 2010-08-05 11:50:00 · 1199 阅读 · 0 评论 -
The study of Programming Windows with MFC--CRgn
<br />1.Create Rgn<br /> FunctionDescriptionCreateRectRgnCreates a rectangular region from a set of coordinatesCreateRectRgnIndirectCreates a rectangular region from a RECT structure or a CRect objectCreateEllipticRgnCreates an elliptical region from a原创 2010-08-05 10:30:00 · 1145 阅读 · 0 评论 -
The Study of Programming Windows with MFC--Bitmap2
<br /><br />::LoadImage is to DIB sections what ::LoadBitmap and CDC::LoadBitmap are to DDBs. But it's also much more. I won't rehash all the input values it accepts because you can get that from the documentation, but here's a short summary of some of the转载 2010-08-05 09:42:00 · 825 阅读 · 0 评论 -
The study of Programming Windows with MFC-Palette
<br />1.Create Palette<br /> <br /> struct<br /> {<br /> LOGPALETTE lp;<br /> PALETTEENTRY pe[31];<br /> }plp;<br /> LOGPALETTE *plg=(LOGPALETTE*) &plp;//why is it converted?<br /> plg->palVersion = 0x300;<br /> plg->palNumEntries =原创 2010-08-03 11:06:00 · 1329 阅读 · 0 评论 -
The study of Programming Windows with MFC--BitMap
<br />1.DDB and CBitMap<br /> <br /> CClientDC dcScreen(this);<br /> CBitmap bitmap;<br /> bitmap.CreateCompatibleBitMap(&dcScreen,m_nWidth,m_nHeight);<br /> <br /> CDC dcMem;<br /> dcMem.CreateCompatibleDC(&dcScreen);<br /> <br /> CBitMap *pOl原创 2010-08-04 11:37:00 · 927 阅读 · 0 评论 -
the study of programmng windows with mfc--timer
BEGIN_MESSAGE_MAP (CMainWindow, CFrameWnd) ON_WM_CREATE () ON_WM_TIMER ()END_MESSAGE_MAP ()int CMainWindow::OnCreate (LPCREATESTRUCT lpcs){ if (CFrameWnd::OnCreate (lpcs) == -1) return -1; if (!SetTimer (ID_TIMER_ELLI原创 2010-08-02 11:33:00 · 794 阅读 · 0 评论 -
The study of Programming Windows with MFC--print's example
class CHexDoc:public CDocument{public: CHexDoc(); DECLARE_DYNCREATE(CHexDoc)public: BYTE GetBytes(UINT nIndex,UINT nCode,PVOID nBuffer); UINT GetDocumentLength();public: virtual BOOL OnNewDocument(); virtual void Serialize(CArchive& ar); virtua原创 2010-07-30 11:13:00 · 870 阅读 · 0 评论 -
The difference between MDI and SDI
<br /> The chief structural differences between MDI and SDI applications built with MFC are as follows: <br /> MDI applications derive their top-level frame window classes from CMDI-FrameWnd rather than CFrameWnd.<br /> <br /> MDI applications use classe转载 2010-07-29 10:43:00 · 956 阅读 · 0 评论 -
The study of chapter 13 in programming windows with mfc-printing with document and views
1.The base architecture: CDC dc(this); CPrintDialog dlg(False); //dlg.GetDefault(); //if(dlg.DoModal()==IDOK) dc.Attach(dlg.GetPrintDC()) DOCINFO di; ::ZeroMemory(&di,sizeof(DOCINFO)); di.cbSize=sizeof(DOCINFO) di.lpszDocName=_T(原创 2010-07-29 11:28:00 · 981 阅读 · 0 评论 -
The Study of Programming Windows with MFC--Slider,Spin,ToolTip
<br />1.Slider<br /> CSliderCtrl m_wndSlider;<br /> // m_wndSlider.Create(this); //when and where is it used?<br /> m_wndSlider.SetRange(0,8);<br /> m_wndSlider.SetPos(4);<br /> m_wndSlider.SetTic(2);<br /> m_wndSlider.SetTic(4);<br /> m_w原创 2010-08-08 11:42:00 · 1233 阅读 · 0 评论 -
The Study of Programming Windows with MFC--Imagelist and ComboBoxEx
<br />1.Imagelist<br /> CImagelist m_il;<br /> m_il.Create(IDB_BITMAP, 18, 1, CLR_NONE);<br /> <br /> m_il.Draw(pDC, 2, point, ILD_NORMAL);<br /> <br /> <br /> <br />2.ComboBoxEx <br /> CImagelist m_il;<br /> m_il.Create(IDB_BITMAP, 18, 1, CLR_原创 2010-08-09 10:13:00 · 900 阅读 · 0 评论 -
The Study of Programming Windows with MFC--Progress and Animate control
<br />1.Progress Control<br /> CProgress m_wndProgress;<br /> m_wndProgress.SetRange(0,100);<br /> m_wndProgress.SetPos (0);<br /> // (2) m_wndProgress.SetStep(1);<br /> for(int i=0;i<100;i++)<br /> {<br /> m_wndProgress.SetPos(i); //eq原创 2010-08-09 10:43:00 · 1178 阅读 · 0 评论 -
软件相关基础知识整理
看到一个很好的博客(董的博客),上面有篇总结性文章,于是转载了过来1. 数据结构与算法1.1 书籍(1)算法导论(2)编程之美(3)编程珠玑(4)数据结构(C语言版)(5)CareerCup.Cracking.the.Technical.Interview.Ed4.2010:http://ishare.iask.sina.com.cn/f/12828753.html转载 2013-11-03 23:17:12 · 3092 阅读 · 0 评论 -
vs2010编译live555源码
最近加入了公司的C++视频小组,利用中秋这个假期将研究了一些live555的源码,现在先将如何编译使用vs2010编译live555,整理出来,对以后分析代码有很大帮助。1.下载live555源码,下载地址:http://www.live555.com/liveMedia/public/live555-latest.tar.gz2.live55简介Live555 是一个为流媒体提供解决原创 2013-09-22 00:30:18 · 13797 阅读 · 13 评论 -
JSONCPP介绍及使用
一、JSON简介JSON全称为JavaScript ObjectNotation,它是一种轻量级的数据交换格式,易于阅读、编写、解析。JSON由两种基本结构构成:1)"名称/值"对的集合,可以理解为对象。2)值的组合,可以理解为数组。JSON对象简单示例示例1:{ "header": { "pid": "10", "cas": "1"原创 2013-03-26 23:04:48 · 5281 阅读 · 1 评论 -
浅谈chromium中的指针管理
转载自:http://www.starwd.com/?p=164前言在大型C++系统中对指针的管理通常至关重要,这跟对象的生命周期相关,存在如下方面的考虑:如何确保指针所指向的对象是在适当范围内是始终存在的?如何构建一种机制,确保能正确检测指针所指向对象是否有效?在chromium中对这类问题分别采用智能指针Scoped_refptr和弱指针WeakPtr来实现转载 2012-11-18 21:09:41 · 5574 阅读 · 0 评论 -
C++中typename关键字的使用方法和注意事项
1, 什么地方使用?用在模板定义里,标明其后的模板参数是类型参数。例如 templateT foo(const T& t, const Y& y){//....};templaceclass CTest{private: T t;public: //...}其实,这里最常用的是使用关键字class,而且二者功能完全相同,这里的转载 2012-11-18 23:37:10 · 962 阅读 · 0 评论