自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(160)
  • 资源 (10)
  • 收藏
  • 关注

原创 CRegKey学习

/* 表示注释,比如你哪一行注册表数据不想用了,又怕今后忘记了,就可以在该行前面加上REM,起到保留作用*/#include "stdafx.h"#include using namespace std;#include int _tmain(int argc, _TCHAR* argv[]){CRegKey objRegkey;int nRet;nRet = objRegkey.Open(HKE

2012-02-25 17:27:21 1846

原创 网络中下载文本文件误区

文本文件在windows上面回车为 \r\n 读写文件的函数充当的角色是吧\n翻译\r\n把\r\n翻译\n  网络传输下载中服务器用二进制打开了文本文件,\r\n全部都出来,如果写入文件时候用不是二进制写入,那么\r\n被翻译成\r\r\n多出一个\rMAC的换行是\r window

2011-11-22 14:48:18 594

原创 磁盘存储原理

对于连续的空闲空间,数据存储时是按柱面->磁道的顺序来进行,先把同一柱面的所有磁道都写满才进入下一柱面的磁道,这样进行也是考虑读写性能的问题,在同一柱面内进行读写磁头不需要进行机械移动,不同磁头的切换通过电子开关来完成,速度很快。有连续空闲空间的情况下,相邻数据一般是存放在同一柱

2011-08-19 17:57:56 989

原创 MFC 文件夹

// MFC_CONSOLE.cpp : Defines the entry point for the console application.//#include "stdafx.h"#includeint main(int argc, char* argv[])

2011-08-15 03:38:57 635

转载 winsock 模型 据我所知12000个左右,以前看到过,在哪里看的忘记了 evnet

重叠I/O模型的另外几个优点在于,微软针对重叠I/O模型提供了一些特有的扩展函数。当使用重叠I/O模型时,可以选择使用不同的完成通知方式。采用事件对象通知的重叠I/O模型是不可伸缩的,因为针对发出WSAWaitForMultipleEvents调用的每个线程,该I/O模型一次

2011-08-12 10:29:19 854

转载 setsockopt

我找到一篇中文的,希望你能用的上。 简述:     设置套接口的选项。     #include        int   PASCAL   FAR   setsockopt(   SOCKET   s,   int   level,   int   op

2011-08-10 22:12:43 595

转载 select

elect在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件

2011-08-10 21:53:29 731

原创 bind 最大线程 端口复用

所谓绑定是指别人连接我只能通过我所绑定的端口,其实是说,你现在有这个端口开放了,人家可以连接到你的服务,也可以进行数据传输,但是也不一定要使用此端口进行传输,可能此端口只用于控制信息的传输端口 = 端口 + Ip TCP 三元组UDP 2元组

2011-08-10 19:35:57 2210

原创 MSG_PEEK

因为UDP是按数据包接收的,我们在接收之前并不知道这个数据包有多大。一个策略是,我们准备足够大的应用程序缓存以免出错,但是这个“足够大”的概念是建立在我们对传送的数据事先有了解的情况下,比如是我们自己设计服务器端和客户端并且制定应用层协议;另外一种策略是,将一个数据包的相关信息记

2011-08-10 15:49:40 8320

原创 MSG_OOB 带内带外消息

带外数据标记。现在进程使用以MSG_OOB 为参数的send()函数写入一个单字节的"带外数据",包含一个ASCII 字符"a":send(fd, “a”, 1, MSG_OOB);TCP 将数据放在下一个可用的发送缓冲区中,并设置这个连接的"紧急指针"(ur

2011-08-10 14:09:59 7776

原创 WinSock1.1

recv不等待是因为你使用的是非阻塞socket,换而你使用阻塞socket一样需要等待。recv的recvfrom是可以替换使用的,只是recvfrom多了两个参数,可以用来接收对端的地址信息,这个对于udp这种无连接的,可以很方便地进行回复。而换过来如果你在udp当中

2011-08-10 13:38:04 1038

转载 关于内存管理,理解

垃圾收集的算法分析   Java语言规范没有明确地说明JVM使用哪种垃圾回收算法,但是任何一种垃圾收集算法一般要做2件基本的事情:(1)发现无用信息对象;(2)回收被无用对象占用的内存空间,使该空间可被程序再次使用。  大多数垃圾回收算法使用了根集(root

2011-08-09 18:13:00 561

原创 GDI GDI+ 切换

当然希望可以使用GDI+来完全代替GDI,再不济也只需要从GDI对象转到GDI+对象。但是就是有那么些工程,又要新技术新特性、又希望快速开发、又不肯丢弃旧版本的已有的功能。没办法,只能缝缝补补,咔哐碙啌...一、CDC到Graphics只要这样:Graphic

2011-08-09 02:24:32 897

原创 关于双缓冲理解

双缓冲几个重要 注意点:1 不直接绘制在DC上,而是先绘制在内存DC然后利用BitBlt块传输效率高2 尽量限制背景重绘,背景的重绘导致两种颜色切换,会产生闪烁效果。 先擦出背景,在绘制图像做法步骤:1创建CompatibleDC2创建位图Compat

2011-08-09 01:06:10 694

原创 一个最简单方法去掉边框

void CMainFrame::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp){    // TODO: 在此添加消息处理程序代码和/或调用默认值   // CFrameWnd::O

2011-08-08 23:28:07 2023

原创 CMenu美化 和CButton

CButton可以利用CBitmapButton测试。CMenu  如果重绘效果更好    CMenu *pSubMenu=m_Menu.GetSubMenu(0);//获得子菜单(如果有)0表示索引,对应“文件”菜单     for(int i=0;i    {

2011-08-08 14:06:59 2029

原创 WM_SZIE WM_PAINT

如果不设置窗体CS_VREDRAW CS_HREADRW 那么两个消息没有关系,窗体变化不会重新绘制。如果有那么Onsize onerasebackground onpaint 一般可以在OnEraseBackgroud重回之背景还一再在OnPant但是OnPaint

2011-08-08 11:36:36 666

原创 MFC 单文档创建过程

点击ON_FILE_NEW -----------> CWInApp::OnFileNew ({ m_pDocManager->OnFileNew) m_pDocManager.OnFileNew {  判断其m_tempList是不是空,然后判断是不是>1 然后用模板CDo

2011-08-07 11:11:36 2968

原创 OnCtrColor

Dialog绘制调用OnCtrColor先绘制Dialog背景,在依次绘制控件,也调用OnCtrColor对应Win32 WM_CTLCOLOR messaafx_msg HBRUSH OnCtlColor( CDC* pDC, CWnd* pWnd,

2011-08-06 23:59:19 919

原创 OnCreate 初始化未完全,解决方法

OnCreate是函数执行WM_CREATE消息,这个时候窗体创建完毕了,但是相关的状态栏,工具栏等不一定创建成功。我们可以在OnCreate中发送一个消息。这个时候不能用SendMessage这个会执行发送消息完后才返回。PostMessage放置到消息队列中,自己

2011-08-06 22:25:59 917

原创 MFC 改变窗口外观

1 在PreCreateWindow中改变,窗体模式,标题,状态,透明等。  标题注意下,标题默认是VIEW的2 在OnCreate后用GetWindowLong(hWnd,GWL_STYLE,WS_XXX);3如果要改变光标图标等,可以在即在PreCreateWindo

2011-08-06 21:32:09 1257

原创 VC 单选按钮 Group

在一个组内的单选按钮,绑定值,是一个枚举 1 2 3 4

2011-08-06 19:17:46 1086

原创 对话框扩展 OnCreate OnInitialDialog 控件焦点,按键回车变化

利用分隔符,获取切割部分大小  用静态控件例如图像控件代替。(获得LABEL) 拉成一条直线,然后获得大小,top==down 是裁剪的位置。记录LagerRect SmallRect利用SetWindowPos 相比MoveWindow 有设定Z序列的功能。

2011-08-06 15:51:29 976

原创 CStatic

静态文本,label  picxbox静态控件默认不可以接收消息,其ID是一样的,不能增加消息,想增加消息,改变IDC,并且改变Notify属性后才可以接受消息,在创建时候传参SS_NOTIFY,或者向导中选择GetDlgItem 返回CWnd指针,atoi itoa

2011-08-06 15:05:31 546

原创 CDialog 模态对话框 非模态

模态对话框可以用局部变量,DoModal   点击OK CANCLE 窗口被销毁   EndDialog( int nRetCode);非模态局部变量是不可以的   Create  Show 点击OK CANCLE窗口被隐藏了,没有销毁  OnOK 重载OnOk不要调用基

2011-08-06 13:39:08 1123

原创 CreateWindow

WS_BORDER 创建一个有边框的窗口 WS_CAPTION 创建一个有标题栏的窗口 WS_CHILDWINDOW(or WS_CHILD)创建一个子窗口(不能与WS_POPUP一起使用) WS_CLIPCHILDREN 当在父窗口内绘制时,把子窗口占据的区域剪

2011-08-06 12:53:02 533

原创 CEdit创建

m_objCpointEditPostion.top = 0;m_objCpointEditPostion.left = 0;m_objCpointEditPostion.right = 200;m_objCpointEditPostion.bottom = 100;

2011-08-06 10:57:18 502

原创 更改消息路由Command

MFC中Command消息包含菜单工具栏等命令消息和控件的Notify消息,其消息流动比较复杂。大体概括如下,系统维护 窗口句柄和对象指针的表,VIEW或者Frame类产生消息找到相应的指针调用 OnCommand  其中改写了OnCommand函数的有CWnd CFra

2011-08-06 10:35:25 516

原创 CMenu

Menu可以看做是一个2维的表子菜单1  子菜单2   子菜单3菜单项1菜单项2子菜单是一个PopUp是弹出菜单,不能响应消息,作用弹出子菜单下面的菜单项目CMenu.GetSubMenuCMenu.GetSubItem

2011-08-05 20:41:47 1958

原创 VC 文字处理

//实现插入符打字,退格回车的思路。用的是TextOut 和DrawText设定的矩形会将字体截断,可以结合Timer实现LRC字幕的变化效果。 CClientDC dc(this); if(nChar ==0x0D) { m_cposCaret.x =0

2011-08-05 17:04:59 724

原创 获得字体信息

GetTextMetric 得到字体在屏幕上宽度高度 tmAvgWidth  tmHeighGetTextExtend

2011-08-05 15:22:56 543

原创 线程同步 线程死锁

内核对象  互斥对象  事件对象(自动)  多个进程内线程  慢 但是有超时用户对象  临界区  速度快,同一个进程内  但是容易死锁,因为没有超时线程1 得到A 再得到B线程2 得到B再得到A线程1entercriticalSection Aen

2011-08-04 19:46:31 545

原创 内核对象 Event

人工重置Event CreateEvent(NULL,TRUE,TRUE) 但EVNET有效时候,所有调度线程可用,因为操作系统没有保证  下面是原子操作,可能大家都可以执行WaiteForSignalObjectReset()例如单核模式下,每次可以运行一个线程。线

2011-08-04 19:21:45 606

原创 命名管道

消息模式(有边界)  字节流模式(没有定界符,连续的没边界)

2011-08-04 16:15:13 556

转载 vc++ 向其他进程注入代码的三种方法

vc++ 向其他进程注入代码的三种方法 2008-11-21 07:32:31| 分类:C VC++ | 标签:|字号大中小订阅 导言:我们在Code project(www.codeproject.com)上可以找到许多密码间谍程

2011-08-04 15:07:03 4401

转载 进程权限

windows的每个用户登录系统后,系统会产生一个访问令牌(access token) ,其中关联了当前用户的权限信息,用户登录后创建的每一个进程都含有用户access token的拷贝,当进程试图执行某些需要特殊权限的操作或是访问受保护的内核对象时,系统会检查其acess to

2011-08-04 13:25:41 2183

原创 ini reg

GetPrivateProfile 可以写入自己指定的自己文件WriteProfileString //根据系统,选择到底写入注册表还是win.ini

2011-08-03 22:00:42 470

原创 C 语言文件存储 文本 2进制

都是2进制的方式存储在磁盘上面,是内存中数据在磁盘上的另一种方式。注意,选择合适的方式。文本:会转化字符,如10  如转化成 10 13回车会转化,长度增加  ,当读入时候遇到 10 13会合并(这种方式对于图片声音是灾难性的)2进制不转化按照自己存储,读写。

2011-08-03 17:44:43 561

转载 几种常见钩子 解释

从现在开始,介绍全部钩子类型,一共有15种。由于本人现在使用C#,所以将原文中的Function都翻译为了“方法”,实际上翻译为“函数”可能更准确。原文中的”callback function”翻译为“回调函数”。Each type of hook enables an ap

2011-08-03 01:20:25 1425

原创 键盘钩子修改键值

在修改键值的时候,需要挂住WH_GETMSG 挂住WM_KEYBORD是不可以的。一个按键 你会不清楚对方使用WM_KEYdwon KEYUP WM_CHAR哪个消息的,最好全部挂钩#define DLL_EXPORTS#include"keybo

2011-08-03 00:25:02 2005

C# 游戏斯洛克 Windows 桌面游戏

2D游戏开发,一个很好的实力。斯洛克游戏

2011-07-17

异步Socket用C#编写

用C# 编写的异步的Socket网络通信

2010-10-30

linux QT 入门

Qt UI设计入门教程,简单介绍了linux地下C++继承开发环境QT开发流程

2010-09-24

DX 入门教程 doc

DX入门教程 适合初学者 游戏编程入门 D3D

2010-07-01

仿照QQ概念版的WPF之作

QQ概念版 登陆仿品 WPF 仿照QQ概念版的WPF之作

2010-07-01

directx 渲染

基于粒子的火种渲染,C++ + directx

2010-06-11

离散数学课件四川大学

四川大学离散数学课件,命题逻辑部分,含有上机实践作业

2009-09-21

三阶贝塞尔函数基于MFC

五点的光滑曲线连接基于MFC,是贝塞尔差值方法

2009-09-21

四川大学机器人仿真底层

5v5底层 ACTION()自动转化点球等

2009-05-31

关于5V5机器人仿真足球小函数

关于5V5机器人仿真足球小函数Kick()

2009-05-31

空空如也

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

TA关注的人

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