VC++程式开发
文章平均质量分 73
study_live
这个作者很懒,什么都没留下…
展开
-
端口扫描程序实现原理
以前看过很多网络相关方面的程式源码, 但时间长了都忘了怎么实现的了, 因此,想将以后看过的源码实现方式记录下来, 以免下次再得找资源! 其实端口扫描程式的原理很简单, 利用socket连接指定IP的端口, 根据其返回值就可以得知目标机器是否开启了这个端口, 实现步骤如下: 1. 创建socket c_socket = socket ( AF_INET, SOCK_STRE原创 2009-09-28 13:39:00 · 1419 阅读 · 0 评论 -
获取位图尺寸
从 CBitmap类对象中获取位图尺寸我们可用GetBitmap()函数 。 // 变量bitmap是一个CBitmap类对象BITMAP bm;bitmap.GetBitmap( &bm );bmWidth = bm.bmWidth;bmHeight = bm.bmHeight;如果你有一个 HBITMAP句柄,你可以将它附加到一个CBitmap类对象上,再用上述方法获取尺寸// 变量hBmp是一个HBITMAP句柄BITMAP bm;::GetObject( hBmp, sizeof( bm ),原创 2010-09-15 12:54:00 · 947 阅读 · 0 评论 -
HICON与HBITMAP互换
<br />第一种方法: 使用Bitmap类<br /> Bitmap类可以从HICON和HBITMAP创建, 它提供的方法有:<br /> Bitmap::FromHBITMAP, <br /> Bitmap::FromHICON,<br /> Bitmap::FromBITMAPINFO,<br /> Bitmap::FromResource,<br /> Bitmap::FromStream,<br /> Bitmap::GetHB原创 2010-09-15 13:31:00 · 4002 阅读 · 4 评论 -
理解C++实现委托原理
<br /> 在C#中有事件委托的概念, 我们可以方便的将一个类中的事件传递到另一个事件处理类中, 其实现的耦合性很底, 两个类之间不需要实例关联, 但在C++中并没有这种内置的功能, 其实仔细想想, C#的这种事件委托机制是可以用C++的成员函数指针来实现的, 只需要加上一个中间类即可, 网上有个FastDelegate的开源库就实现了这种委托机制, 有需要用到C++委托的朋友可以上网找找这个库. 我们这里只是简单介绍下C++实现委托机制的原理, 也是参照了FastDelegate库.原创 2010-09-06 09:57:00 · 1616 阅读 · 0 评论 -
SkinMagic使用方法总结--SetSingleDialogSkin断言失败
<br /> 以前一直没有接触过皮肤库这玩意, 最近做一个im项目需要用到皮肤库了, 我们公司用的是SkinMagic, 关于SkinMagic的安装和使用方法, 网上有很多教程, 在SkinMagicLib.h头文件里介绍也很详细, 这里就不重复了, 主要描述一下我在使用SkinMagic碰到过的问题. 刚开始使用SkinMagic库时, 觉得它很简单(基本使用确实是很简单的, -_-), 一眼就扫完了它所包含的几个常用函数:<br /> <br /> InitSkinMagi原创 2010-09-17 15:44:00 · 2443 阅读 · 1 评论 -
理解C++成员函数指针
成员函数定义, 赋值, 调用方式及注意事项原创 2010-09-06 09:19:00 · 897 阅读 · 0 评论 -
C++内存管理之一(检测内存泄露)
<br /> C++程序的复杂性很大一部分在于他的内存管理,没有C#那样的垃圾回收机制,内存管理对初学者来说很困难。经常会出现内存泄露的情况。那么我们写程序如何避免内存泄露呢?首先我们需要知道程序有没有内存泄露,然后定位到底是哪行代码出现内存泄露了,这样才能将其修复。<br /> 本文描述了如何检测内存泄露。最主要的是纯C,C++的程序如何检测内存泄露。<br /> 现在有很多专业的检测工具,比如比较有名的BoundsCheck, 但是这类工具也有他的缺点,我认为首先Bound转载 2010-10-19 09:20:00 · 664 阅读 · 0 评论 -
C++0x语言新特性一览
<br />原文请见http://en.wikipedia.org/wiki/C%2B%2B0x。 Rvalue reference and move semantics右值引用与转移语义在标准C++语言中,临时量(术语为右值,因其出现在赋值表达式的右边)可以被传给函数,但只能被接受为const &类型。这样函数便无法区分传给const &的是真实的右值还是常规变量。而且,由于类型为const &,函数也无法改变所传对象的值。C++0x将增加一种名为右值引用的新的引用类型,记作typename &&。转载 2011-01-13 09:54:00 · 814 阅读 · 0 评论 -
C++对象布局及多态实现
C++对象布局方式原创 2011-04-01 10:30:00 · 569 阅读 · 0 评论 -
怎样重建一个损坏的调用堆栈(callstack)
原文作者:Aaron Ballman原文时间:2011年07月04日原文地址:http://blog.aaronballman.com/2011/07/reconstructing-a-corrupted-stack-crawl/翻译:magictong时间:2014年05月29日夜后记:可惜原始的DUMP文件作者并没有上传 在我的日常转载 2015-01-29 22:06:05 · 624 阅读 · 0 评论 -
VC加载jpeg, png图片的方法
<br /> 在VC中我们可以直接利用LoadIcon, LoadBitmap或LoadImage来加载bmp和ico图片, 但是加载jpg和png等格式就没有这么方便了. 其实我们可以通过两个系统提供的两个com接口IPicture和IStream类实现类似于VB的Picture控件, 具体的用法请查看msdn或google下, 下面代码是我以前在网上找的一个例子, 主要用到了几个API函数: AfxGetResourceHandle, FindResource, SizeofResourc原创 2010-09-15 11:06:00 · 5533 阅读 · 0 评论 -
在VC中如果实现GIF的播放?
void CImageView::OnDraw(CDC* pDC) { CImageDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here转载 2010-03-29 09:25:00 · 602 阅读 · 0 评论 -
VC++内存泄露定位
内存泄漏定位 今天调试程序,发现有内存泄漏但是没有提示具体是哪一行,搞得我很头疼。结果在网上搜索了一些资料,经自己实践后整理如下: 第一种:通过"OutPut窗口"定位引发内存泄漏的代码(下面转,我写的没原文好,也懒得写)。 我们知道,MFC程序如果检测到存在内存泄漏,退出程序的时候会在调试窗口提醒内存泄漏。例如: class CMyApp : publ转载 2009-11-28 14:13:00 · 1153 阅读 · 2 评论 -
HeapAlloc和GlobalAlloc以及VirtualAlloc三者之间的关系
VirtualAlloc一次分配1PAGE以上的RAM. 每次分配都是PAGE的整数倍.你不会想为了分配1个BYTE的空间而浪费剩下的4095字节. OK. 你可以自己写算法,多分配几PAGE. 然后每次分配少量数据时就从那几PAGE中划分出来. 什么? 你笨到不会写分配算法? 好巴 KERNEL32给你一个解决办法. 用HeapAlloc/GlobalAlloc分配RAM. 这样,KERNEL3转载 2010-02-04 08:46:00 · 547 阅读 · 0 评论 -
使用VC++ 6.0开发WebService(gsoap)
最开始以为需要使用C#,或是VC++.net才能方便的开发WebService,后面在网上找到了gsoap,的确是一个好工具,使用VC++6.0也可以开发WebService了。 开发的过程非常的简单,首先定义好WebService所需要提供的接口(或是服务),其实就是一个.h申明文件,然后使用“soapcpp2.exe”工具,他会帮你生成一系列的中间文件。转载 2009-12-10 14:22:00 · 3343 阅读 · 0 评论 -
vc(非托管)中如何调用webservice?
用msxml+soap #import "msxml4.dll" using namespace MSXML2; #import "C:/Program Files/Common Files/MSSoap/Binaries/mssoap30.dll" / exclude("IS转载 2009-12-10 13:53:00 · 923 阅读 · 0 评论 -
C++使用gsoap创建webService
gSOAP是一个夸平台的,用于开发Web Service服务端和客户端的工具,在Windows、Linux、MAC OS和UNIX下使用C和C++语言编码,集合了SSL功能。下载地址:http://sourceforge.net/projects/gsoap2官方网站:http://genivia.co转载 2009-12-10 14:04:00 · 4479 阅读 · 2 评论 -
内存分配函数总结
内存分区:1)、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2)、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。3)、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻原创 2010-02-10 10:47:00 · 933 阅读 · 0 评论 -
利用SMTP发送Mail详解(二)
3. SMTP身份认证SMTP身份认证方式有很多种, 每种认证方式验证发送的信息都有点细微的差别, 这里我主要介绍下LOGIN,PLAIN及NTLM三种简单的认证方式, 附带CRAM-MD5和DIGEST-MD5方式(验证没通过, 不知道问题出在哪了? 有待高人帮忙解决!).要进行身份认证, 先要知道当前SMTP服务器支持哪些认证方式, 在ESMTP中有个与HELO命令相同功能的命原创 2010-01-09 11:17:00 · 6221 阅读 · 1 评论 -
利用SMTP发送Mail详解(一)
<!--v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}--> Normal 0 7.8 磅 0 2原创 2010-01-09 11:02:00 · 9335 阅读 · 0 评论 -
利用SMTP发送Mail详解(三)
5). DIGEST-MD5认证方式DIGEST-MD5认证也是Challenge/Response的方式, 与CRAM-MD5相比, 它的Challenge信息更多, 其Response计算方式也非常复杂, 我在测试时也是以认证失败而告终, 只是将在网上找到的资料整理于此, 能为后来研究的人多提供点资料, 或者有兴趣的朋友们可以和我一起讨论下.我们先看下DIGEST-MD5认证发送响原创 2010-01-09 13:02:00 · 6180 阅读 · 0 评论 -
在windows下编译mongodb c driver
mongodb引用到了openssl和bson库,因此先要安装这2个库, 还需要用到cmake生成vs项目, 这里cmake的安装就直接忽略了, 有需要的同学可自行百度。1. 下载perl, 点击打开链接2. 下载openssl 点击打开链接3. 在openssl源码目录调用perl Configure VC-WIN32 生成配置4.运行openssl\ms\do_ms.bat生原创 2015-09-02 14:57:09 · 2345 阅读 · 0 评论