自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

转载 Windows进程间通信--共享内存

共享内存主要是通过映射机制实现的。  Windows 下进程的地址空间在逻辑上是相互隔离的,但在物理上却是重叠的。所谓的重叠是指同一块内存区域可能被多个进程同时使用。当调用 CreateFileMapping 创建命名的内存映射文件对象时,Windows 即在物理内存申请一块指定大小的内存区域,返回文件映射对象的句柄 hMap。为了能够访问这块内存区域必须调用 MapViewOfFile 函数

2017-03-03 14:26:42 606

原创 用Wininet以Https的post方式登录

整个过程大概是这样的:发送http请求报文到服务器,报文的数据体中带有账号密码;服务器接受处理后返回响应报文;根据响应报文的状态码判断登录是否成功,通过读取返回报文的首部行获取所需的信息。我这里是通过Location获取返回的cookie信息,用webBroswer登录时加载cookie即可。大致的代码如下:// strUrl:登录检测的地址;postData:发送的账号密码字符串(如:n

2016-07-08 17:05:25 6888

原创

1.vs上选中函数按F1直接打开MSDN上的函数说明2.WireShark上过滤栏中输入 tcp.port == 443 选择https抓包, 输入dst.ip == xxxx 选择该目的地址抓包3.cmd中ping+网址 可以获得该网站的IP4.cmd中ipconfig可以获得本地ip

2016-07-07 23:42:32 314

转载 c++ 智能指针

C++ 智能指针详解 一、简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto_ptr、boost::scoped_p

2016-04-15 15:12:36 329

转载 c++操作mysql

本文对如何使用MySql的API连接MySql数据库,开发环境为VS2008. 一、VS2008工程设置工作首先,建立一个windows应用程序的工程,将C/C++->预处理器->预处理器定义下的_WINDOWS改为_CONSOLE,将连接器->系统->子系统 选择为控制台。由于我们要使用Mysql的API,并且我们机子上肯定安装了Mysql数据库,所以我们要将

2016-04-13 15:03:39 355

转载 mysql入门操作

21分钟 MySQL 入门教程 目录一、MySQL的相关概念介绍二、Windows下MySQL的配置配置步骤MySQL服务的启动、停止与卸载三、MySQL脚本的基本组成四、MySQL中的数据类型五、使用MySQL数据库登录到MySQL创建一个数据库选择所要操作的数据库创建数据库表六、操作MySQL数据库向表中插入数据查询表中的数据更新表中的数据删除表

2016-04-12 13:52:31 254

原创 基于WinInet API的HTTP编程

主要步骤:1. 用InternetCheckConnection判断是否接通外网2. 用InternetOpen初始化一个应用程序,以使用 WinINet 函数3. 用InternetConnect创建一个特定的对话4. 调用一个HttpOpenRequest打开一个HTTP请求5. HttpAddRequestHeaders 添加标头6. HttpSendRequest发

2016-03-22 14:26:06 1186 1

转载 Socket send函数和recv函数详解

1.send 函数int send( SOCKET s, const char FAR *buf, int len, int flags );      不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。    该函数的第一个参数指定发送端套接字描述符; 

2016-03-16 13:12:21 346

转载 Socket 分包解包

对于基于TCP开发的通讯程序,有个很重要的问题需要解决,就是封包和拆包.下面就针对这个问题谈谈我的想法,抛砖引玉.若有不对,不妥之处,恳求大家指正.在此先谢过大家了. 一.为什么基于TCP的通讯程序需要进行封包和拆包.TCP是个"流"协议,所谓流,就是没有界限的一串数据.大家可以想想河里的流水,是连成一片的,其间是没有分界线的.但一般通讯程序开发是需要定义一个个相互独立的数据包的,比如

2016-03-16 11:07:00 9111

原创 WinSock编程小结

一. 服务器端1.加载WInSock库因为WinSock服务是通过动态链接库WinSock DLL实现的,所以调用WinSock函数前,需要加载WinSock库启动服务。int WSAStart( WORD wVersion, LPWSADATA lpWSAData);wVersion 指定加载的WinSock版本号,一般使用MAKEWORD(X,Y); X指副版本号,Y指主版

2016-03-11 11:13:26 380

转载 vs2010项目属性配置

vs2010使用方案管理项目,一个解决方案下可包含多个项目。默认情况下,项目属性的设置的目录起点为项目配置文件所在的位置,实际上就是项目头文件和源文件所在的位置。vs2010中默认建立C++项目,则解决方案总目录下包含一个sln和一个项目文件夹,在vs2010编译器中生成debug和release解决方案后,总目录下还会生成对应的debug和release目录,存放最终生成的exe或dll

2016-03-02 16:56:41 3673

原创 RTTI使用原理

运行时识别RTTICRuntimeClass 是记录类信息的型录,每个需要RTTI的类都需要一个型录。通过 DECLARE_DYNAMIC在类声明中声明型录对象,通过IMPLEMENT_DYNAMIC在类定义中定义型录对象。可以通过RUNTIME_CLASS(xxclass) 宏获取类的型录对象CRuntimeClass指针,通过IsKindOf(CRuntimeClass*)

2016-03-02 10:21:55 295

转载 MFC单文档SDI

首先我们了解到的是 图(一)theApp 是唯一一个在程序形成的时候就存在的全局变量,它属于CstockAppApp类,而CstockAppApp 继承于CwinApp类,我们看一下MSDN中CwinApp的继承关系如下: 图(二)从继承关系当中,我们发现theApp是作为程序的实体而存在的,是单文档程序的核心。首先分析一下的是CsockAppApp这个类,这里面有一个

2016-02-29 16:19:36 428

原创 openGL的初始化设置

1. 材料和光源2. 深度在现实生活中,一个实心物体挡在另外一个实心物体的前面, 后面的那个物体有部分会被遮盖掉那么opengl里面如何模拟这个情况呢? 每个物体的每个像素都有一个深度缓存的值(在0到1之间,可以想象成是z轴的距离)如果glDepthFunc启用了GL_LESS(现实生活中的前景), 那么当前个物体挡住后个物体时, 由于前个物体深度值小(越靠近人

2016-02-29 13:19:28 3435

转载 openGL的光照与材料(一)

真实感图形绘制是计算机图形学的一个重要组成部分,它综合利用数学、物理学、计算机科学和其它科学知识在计算机图形设备上生成象彩色照片那样的具有真实感的图形。一般说来,用计算机在图形设备上生成真实感图形必须完成以下四个步骤:一是用建模,即用一定的数学方法建立所需三维场景的几何描述,场景的几何描述直接影响图形的复杂性和图形绘制的计算耗费;二是将三维几何模型经过一定变换转为二维平面透视投影图;三是确定场景中

2016-02-29 10:35:56 8888

转载 动态链接库的创建和使用

一、创建新的动态链接库(DLL)项目从“File”菜单中,选择“New”,然后选择“Project…”。如下图:在“项目类型”窗格中,选择“Visual C++”下的“Win32”。在“模板”窗格中,选择“Win32 Console Application”。为项目选择一个名称,如 MathFuncsDll,并将其键入“Name:”字段。 为解决方案选择一个名称,如

2016-02-14 14:06:49 760

转载 VS中加载静态库的配置

在VS工程中,移植c/c++工程的基本步骤:    1、添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录。    2、添加文件引用的lib静态库路径:工程---属性---配置属性---链接器---常规---附加库目录:加上lib文件存放目录。          然后添加工程引用的lib文件名:工程---属性---配置属性--

2016-02-14 13:25:26 944

转载 载入和显示纹理

glBindTexture()函数在渲染的时候调用,需要注意,一定不能放在glBegin()和glEnd()函数对中,否则函数的调用无效。下面就总结一下怎样在OpenGL中载入和显示纹理。1、在初始化阶段,调用glGenTextures()函数产生纹理名(纹理索引),使用glBindTexture()函数绑定纹理,再用熟悉的图形加载库函数加载一个纹理,使用glTexImage2D()将数据载入

2015-12-17 17:31:19 1053

转载 MFC多线程编程

一、问题的提出编写一个耗时的单线程程序:  新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:void CSingleThreadDlg::OnSleepSixSecond() { Sleep(6000); //

2015-11-17 14:36:53 445

转载 对话框中显示bmp

以前写的图像处理软件不是从头写的,这次从头写个图像处理软件,遇到的第一个难题竟然是无法在对话框工程中打开一幅新的图片,以前短短的几行代码现在被无限扩展,琢磨N久,终于成功.拿出来和大家分享菜鸟的成果...回去好好补补对话框指针的知识注意:这个程序不是文档视类中实现的,也不是.net实现的..net中只要用CImage类的方法就可以了,而这是VC6如何在对话框MFC中点击按钮打开并显示bmp

2015-11-11 13:59:47 373

转载 位图显示几种,包含loadimage

CBitmap hbmp;  HBITMAP hbitmap;  //装载图片文件MM.bmp  hbitmap=(HBITMAP)::LoadImage(::AfxGetInstanceHandle(),"MM.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);  hbmp.Attach(hbitmap); 

2015-11-11 13:57:21 1079

原创 关于CBitmap的一点心得

本人MFC初学者,本周刚学会bmp图片显示,总结的一点心得bmp显示无非几种情况:1、知道位图路径2、位图已经加载到资源3、位图像素数据在内存中显示:CBitmap pbitmap;第一种情况:HBITMAP hbitmap = (HBITMAP)::LoadImage(::AfxGetInstanceHandle(), "绝对路径", IMAGE_BITM

2015-11-11 13:41:46 347

转载 位图显示基本程序

1 BOOL CGraphicView::OnEraseBkgnd(CDC* pDC) 2 { 3 // TODO: 在此添加消息处理程序代码和/或调用默认值 4 CBitmap bitmap; 5 bitmap.LoadBitmapA( IDB_BITMAP1 ); 6 7 BITMAP bmp; 8 bitmap.GetB

2015-11-11 09:21:35 309

转载 在对话框中显示bmp图片

以前写的图像处理软件不是从头写的,这次从头写个图像处理软件,遇到的第一个难题竟然是无法在对话框工程中打开一幅新的图片,以前短短的几行代码现在被无限扩展,琢磨N久,终于成功.拿出来和大家分享菜鸟的成果...回去好好补补对话框指针的知识注意:这个程序不是文档视类中实现的,也不是.net实现的..net中只要用CImage类的方法就可以了,而这是VC6如何在对话框MFC中点击按钮打开并显示bmp

2015-11-06 16:46:46 520

转载 Dicom格式文件解析器

Dicom格式文件解析器Dicom全称是医学数字图像与通讯,这里讲的暂不涉及通讯那方面的问题 只讲*.dcm 也就是diocm格式文件的读取,读取本身是没啥难度的 无非就是字节码数据流处理。只不过确实比较繁琐。好了 正题分析整体结构先是128字节所谓的导言部分,说俗点就是没啥意义的破数据 跳过就是了,然后是dataElement依次排列的方式 就是一个d

2015-11-01 19:47:28 5065

转载 vector小结

vector是线性容器,它的元素严格的按照线性序列排序,和动态数组很相似,和数组一样,它的元素存储在一块连续的存储空间中,这也意味着我们不仅可以使用迭代器(iterator)访问元素,还可以使用指针的偏移方式访问,和常规数组不一样的是,vector能够自动存储元素,可以自动增长或缩小存储空间,vector的优点:1.       可以使用下标访问个别的元素2.       迭代器可以按

2015-10-19 09:30:51 268

转载 vs project properties配置

首先,解决方案和项目文件夹包含关系(c++项目):VS解决方案和各个项目文件夹以及解决方案和各个项目对应的配置文件包含关系,假设新建一个项目ssyy,解决方案起名fangan,注意解决方案包括项目,此时生成的最外层目录为fangan代表整个解决方案的内容都在这个文件夹内。在这个fangan文件夹内包含有fangan.sln的解决方案配置文件和一个ssyy文件夹,ssyy文件夹代表整个ssy

2015-08-25 19:51:45 1918

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除