- 博客(68)
- 资源 (33)
- 收藏
- 关注
转载 MFC Radio Button 使用 分组 RadioButton 用法
1. 环境:VS20102. 分组将radio1、radio2、radio3分为1组,radio4、radio5分为另一组;方法:设置 radio1 的 属性: group、tabstop、auto均为true设置 radio2 的 属性: group设为false, tabstop、auto均为true设置 radio3 的 属性:grou
2015-08-30 14:52:26 718
转载 彻彻底底了解回调函数
什么是回调函数?一,回调函数我们经常在C 设计时通过使用回调函数可以使有些应用(如定时器事件回调处理、用回调函数记录某操作进度等)变得非常方便和符合逻辑,那么它的内在机制如何呢,怎么定义呢?它和其它函数(比如钩子函数)有何不同呢?使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递给那个函数。而那个函数
2015-08-26 17:39:56 700
转载 1.6 网络编程之 UDP通信
*************************************************** 本文由小鸟飞飞整理发表 ** 首发网站:蓝丽网 ** 其他网站转载请保留以上信息,谢谢! *************************************************** 又是出差,一个半月啊,烦死
2015-08-26 17:19:55 597
转载 1.5 MFC封装思想
*************************************************** 本文由小鸟飞飞整理发表 ** 首发网站:蓝丽网 ** 其他网站转载请保留以上信息,谢谢! *************************************************** 出差回来,继续加班,找点时
2015-08-26 17:19:20 737
转载 1.4 消息循环和回调函数
*************************************************** 本文由小鸟飞飞整理发表 ** 首发网站:蓝丽网 ** 其他网站转载请保留以上信息,谢谢! ***************************************************上 一节的程序可以运行了吧。现在
2015-08-26 17:18:17 1264
转载 1.3 窗口是怎样建成的
*************************************************** 本文由小鸟飞飞整理发表 ** 首发网站:蓝丽网 ** 其他网站转载请保留以上信息,谢谢! *************************************************** 现在我们用SDK生成一个
2015-08-26 17:17:48 477
转载 1.2句柄及 WinMain函数
************************************************ 本文由小鸟飞飞整理发表 ** 首发网站:蓝丽网 ** 其他网站转载请保留以上信息,谢谢! *************************************************关 于句柄 在Windows编程中我们时刻接
2015-08-26 17:17:10 567
转载 1.1 Windows 程序运行原理(消息循环和响应)
************************************************** 本文由小鸟飞飞整理发表 ** 首发网站:蓝丽网 ** 其他网站转载请保留以上信息,谢谢! **************************************************Windows 的工作方式:
2015-08-26 17:16:39 893
转载 SETTIMER的使用问题
SetTimer函数用于创建一个计时器,KillTimer函数用于销毁一个计时器。计时器属于系统资源,使用完应及时销毁。 SetTimer的函数原型如下:UINT_PTR SetTimer( HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc ) ; 其中 hWnd是和timer关联的窗口
2015-08-24 11:11:06 1105
转载 关于windows xp sp2/sp3 中tcpip.sys对于Raw socket的限制
WINDOWS XP SP2修改了TCPIP.SYS,增加了对于RAW SOCKET的发送和伪造源地的限制,详情如下 :1) 不能通过raw socket发送TCP报文。做此尝试时会得到10004号错误。2) 不能通过raw socket发送伪造源IP的UDP报文。3) 不能通过raw socket发送IP碎片。做此尝试时会得到10004号错误。不知微软在哪次对20
2015-08-23 22:13:22 1315
转载 【网络编程】之十三、ping程序实现
使用原始套接字:SOCK_RAW需要ICMP代码如下:[cpp] view plaincopy#include #include using namespace std; #pragma comment(lib, "WS2_32.lib") typedef struct icmp
2015-08-21 16:47:04 556
转载 【网络编程】之十二、wsaeventselect+线程池 服务器实现
[cpp] view plaincopy#include #include using namespace std; #pragma comment(lib, "WS2_32.lib") typedef struct _SOCKET_OBJ{ SOCKET s; HANDLE event;
2015-08-21 16:41:03 645
转载 【网络编程】之十一、重叠IO Overlapped IO 完成例程
完成例程是Win Sockets提供的另一种管理完成的重叠I/O方法,完成例程是一个函数,当发起重叠操作时,将该函数传递给发起操作的函数,当重叠IO操作完成时由系统调用。下面来看一下例程必须拥有下面的函数原型:[cpp] view plaincopyvoid CALLBACK CompletionROUTINE{
2015-08-21 16:37:52 592
转载 【网络编程】之十、重叠IO Overlapped IO
winsock2 中引入了重叠I/O(Overlapped I/O)的概念并且要求所有的传输协议提供者都支持这一功能。 他的功能高于前面我们提过的三种,但是最强悍的还是我们后面要说的完成端口。基本原理:让应用程序使用一个重叠的数据结构,一次投递一个活多个winsock I/O请求,针对那些提交的清酒,在他们完成之后,应用程序可为他们提供服务。 应用程序可通过ReadFile和Write
2015-08-21 16:37:20 643
转载 【网络编程】之九、事件选择WSAEventSelect
WSAEventSelect模型是类似于WSAAsyncSelect模型的另一个有用的异步I/O模型。它允许应用程序在一个或者多个套接字上接收以事件为基础的网络事件。 在这里,最主要的差别是在于网络事件会投递到一个事件对象句柄。并不是投递到一个窗口。我们使用事件模型前,我们的应用程序针对使用的每一个套接字首先要创建一个事件对象:[cpp] view plainc
2015-08-21 16:36:28 1432
转载 【网络编程】之八、异步选择WSAAsyncSelect
大家用这个模型,可以让应用程序在一个套接字上接收以windows消息为基础的网络事件通知。我们想要用这个操作,具体的做法就是我们建立一个套接字,然后调用WSAAsyncSelect函数, 也就是说,这个模型的核心就是我们的这个函数;来看一下函数原型:[cpp] view plaincopyint WSAAsyncSelect(
2015-08-21 16:35:22 538
转载 【网络编程】之七、select聊天室
好久没有用MFC 来写代码了,手都生疏了,悲剧啊,好多API 都去查的 哎~~~好了 下面把 我们聊天室的代码贴出:select函数封装:[cpp] view plaincopyBOOL CserverDlg::Select_Server(SOCKET sock, int nTime /* = 100 */, B
2015-08-21 16:34:53 767
转载 【网络编程】之六、选择select
select模型在五中模型中是最简单,最容易实现的,当然他的效率当然不如其他四种;select可以去监视一个套接字,看哪个socket有消息到来;[cpp] view plaincopyint select( _In_ int nfds,//忽略 _Inout_ fd_set *readfds,//一个用
2015-08-21 16:34:14 504
转载 【网络编程】之五、异步模型
注:本文部分转载一:select模型二:WSAAsyncSelect模型三:WSAEventSelect模型四:Overlapped I/O 事件通知模型五:Overlapped I/O 完成例程模型六:IOCP模型老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系。他们的信会被邮递员投递到他们的信箱里。这和Socket模型非常类
2015-08-21 16:33:39 548
转载 【网络编程】之四、socket网络编程例解
前面说了那么多,现在我们给出4个代码+详解,基于win32平台的socket编程。使用TCP 和 UDP 两种协议。OK,先来看一下TCP服务器和客户端:[cpp] view plaincopy/************************************************** 文件名server.
2015-08-21 16:33:13 629
转载 【网络编程】之三、socket网络编程
前面两篇看socket的入门一些知识还有一些常用的API,现在来解释一些概念,还有就是tcp和udp客户端服务器基本模式!阻塞和非阻塞套接字可以处于阻塞模式或者非阻塞模式,调用任何一个阻塞模式的函数都会产生同样的结果。(用或长或短的时间等待操作的完成) 当套接字处于非阻塞模式的时候,API函数的调用会立即返回,但是大多会失败,返回WSAEWOULDBLOCK错误
2015-08-21 16:32:46 548
转载 【网络编程】之二、socket API学习
套接字API函数:1、socket函数:The socket function creates a socket that is bound to a specific transport service provider.2、bind函数:The bind function associates a local address with a socket.(一般用于服
2015-08-21 16:31:58 690
转载 【网络编程】之一、初识WinSocket
Winsock是Windows下的网络编程接口,它是由Unix下的BSD Socket发展而来,是一个与网络协议无关的编程接口。 Winsock在常见的Windows平台上有两个主要的版本,即Winsock1和Winsock2。编写与Winsock1兼容的程序你需要引用头文件WINSOCK.H,如果编写使用Winsock2的程序,则需要引用WINSOCK2.H此外还有一个MSWSOCK.
2015-08-21 16:31:27 2664
转载 数据库脱机和分离的区别
分离和脱机都可以使数据库不能再被使用,但是分离后需要附加才能使用,而脱机后只需联机就可以用了脱机与联机是相对的概念,它表示数据库所处的一种状态,脱机状态时数据库是存在的,只是被关闭了,用户不能访问而已,要想访问可以设为联机状态 分离与附加是相对的两个概念,分离后,数据库不存在,只存在数据库对应的安装地址D:\SQL2008\MSSQL10.MSSQLSERVER\MSSQL\DATA下,要
2015-08-20 13:31:26 21535
转载 长连接和Keepalive
TCP协议中有长连接和短连接之分。短连接在数据包发送完成后就会自己断开,长连接在发包完毕后,会在一定的时间内保持连接,即我们通常所说的Keepalive(存活定时器)功能。默认的Keepalive超时需要7,200,000 milliseconds,即2小时,探测次数为5次。它的功效和用户自己实现的心跳机制是一样的。开启Keepalive功能需要消耗额外的宽带和流量,尽管这微不足道,但在按流量
2015-08-20 12:32:17 1034
转载 基于Windows Socket 的网络通信中的心跳机制原理
引言 在采用TCP 连接的C/S 结构的系统中,当通信的一方正常关闭或退出时,另一方能收到相应的连接断开的通知,然后进行必要的处理;但如果任意一方发生所谓的“非优雅断开”,如:意外崩溃、死机、拔掉网线或路由器故障时,另一方无法得知TCP 连接已经失效,除非继续在此连接上不断地发送数据,经过若干时间后导致错误返回。但在很多时候,更希望服务器端和客户端都能及时有效地检测到网络
2015-08-20 12:07:12 2515
原创 静态函数调用非静态函数的小例子
// tt.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"class A{public: void fun() { printf("1111111111"); } static void fun2() { fun(); }};int _tmain(int argc, _TCHAR* argv[]){ A a; A:
2015-08-19 19:02:16 2118
转载 空结构体和空类
今天看到一片博客说面试被问空结构体大小的问题,发现这个问题以前还真没想过。于是自己试了一把,并在网上找了些资料总结如下:空结构体,先上代码1234567891011#include typedef empty{}a; int
2015-08-19 18:38:43 718
原创 HashKey小测试
FILE *fp = fopen("c:\\HashKey.txt","ab+"); for (int i=0;i<0xffffff;i++) { CString strGuid; strGuid.Format("%d",i); UINT key = HashKey( (LPCTSTR) strGuid); strGuid.Format("%d --key--> %d",i,
2015-08-19 17:22:47 400
转载 LDF文件过大,如何收缩
方法一、 方法二、MSSQL清除日志的命令如何清除sqlserver 日志?设置数据库为简单模式,自动收缩1.打开查询分析器,输入命令backup log databasename with no_log2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一
2015-08-19 15:17:59 19758
转载 AfxInitExtensionModule和AfxTermExtensionModule
一个很好的API查询网站 www.apihome.cnAfxInitExtensionModuleBOOL AFXAPI AfxInitExtensionModule( AFX_EXTENSION_MODULE& state, HMODULE hModule );返回值:如果成功地初始化了扩展DLL,则返回TRUE;否则返回FALSE。参数:stat
2015-08-18 16:35:08 1791
转载 VC++ 创建Windows服务
我在开发的时候用到了DLL里面的函数,开始的时候采用的静态导入的方法,但是发现服务开机启动以后就死掉了,这里不是DLL路径的问题。 没办法,自己只得用动态导入的方法,还好,服务自动开机运行了,还算正常吧。 小提示:如果需要弹出MessageBox消息,比如让服务可以与桌面进行交互。 这个在服务里面可以设置。 当然,我这里的初始化参数已经设置好了,在DOS命
2015-08-17 12:32:17 2361 1
转载 Instsrv.exe可以给系统安装和删除服务
最近一段时间我们公司开发一款新的产品,要在服务器上运行一个服务端程序,为了方便我就希望能将这个程序注册成系统服务开机自动启动而不用每次重启系统都要手动启动程序。经过baidu和google这两位大神的帮助终于找到解决办法,在这里要用到微软提供的两个小工具“instsrv.exe”和“srvany.exe”。Instsrv.exe可以给系统安装和删除服务Srvany.exe可以让程序
2015-08-17 11:09:06 10156
转载 instsrv.exe——来自Windows 2000 Resource Kits的一个小工具
微软官方对该小工具的说明:Installs and uninstalls executable services and assigns names to them.显而易见,这个小工具是用以安装和卸载可执行的服务和指派服务名给这些可执行的服务的。那么怎么去使用呢?这里我们设定要将F:\cpu.exe 以 CPUSrv 的名称显示作为服务的话,我们应当这样子做:先将instsrv.
2015-08-17 10:51:18 627
转载 windows服务创建工具srvany.exe介绍
srvany.exe介绍 srvany.exe是Microsoft Windows Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行。也就是说srvany只是其注册程序的服务外壳,这个特性对于我们来说非常实用,我们可以通过它让我们的程序以SYSTEM账户启动,或者实现随机器启动而自启动,也可以隐藏不必要的窗口,比如说控制台窗口等等。
2015-08-17 10:50:47 1465
转载 利用小工具instsrv和srvany 创建windows服务
本方式特点:代码超级简单,WindowsForm程序即可,并支持程序交互(本人最喜欢的特点),好像不支持win7,支持xp win2003首先介绍2个小工具:instsrv.exe:用以安装和卸载可执行的服务srvany.exe:用于将任何EXE程序作为Windows服务运行 这2个工具都是是Microsoft Windows Resource Kits工具
2015-08-17 10:49:27 1860
转载 检查程序崩溃自动DUMP
#if !defined(_DUMPMODULE_H_FBFFBA7D_971E_48e0_A589_6FD14E8965B6)#define _DUMPMODULE_H_FBFFBA7D_971E_48e0_A589_6FD14E8965B6#if _MSC_VER >= 1000#pragma once#endif // _MSC_VER >= 1000#include #in
2015-08-17 00:28:03 666
转载 编程实现木马的ActiveX启动和注入IE的启动方式
木马的启动方式有很多种,现在比较流行的就是注册为系统服务启动(只适合Windows 2000以上的系统),或者以驱动的方式启动。不过,最近以ActiveX方式启动又比较流行了,因为它适合Windows 9x或2000以上的机器,而且杀毒软件(比如瑞星、江民、金山等)基本不会去监视这种启动方式,比较隐蔽。以ActiveX方式启动的木马国外的比较多,于是就到网上查找相关代码,发现了RECUB。
2015-08-16 19:10:39 1005
原创 注入dll到一个进程里面
下面代码亲测没有问题:// Injector.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include int _tmain(int argc, _TCHAR* argv[]){ //获得被插进程的绝对路径 char IePath[MAX_PATH] = "c:\\1.exe"; char DllFullPath[MAX_PATH]
2015-08-16 01:42:38 737
转载 用 GetEnvironmentVariable 获取常用系统环境变量
以前曾用 GetWindowsDirectory、GetSystemDirectory、GetTempPath 等函数获取系统常用文件夹;也用过 SHGetSpecialFolderLocation、SHGetPathFromIDList 函数获取过更多常用路径;但这都不如用 GetEnvironmentVariable 获取系统变量来得快.//譬如 %WINDIR
2015-08-15 11:24:56 3602
SSDTHook实现进程保护
2017-06-09
SkinSharp开发库+百款皮肤+皮肤编辑器
2017-05-24
minhook-1.3.2
2017-05-09
python2.7.8 32
2016-05-25
AStar 算法实例
2015-07-18
Visual Assist X补丁
2015-06-18
cmake-3.14.3-win64-x64.zip
2019-09-05
跨平台高性能TCP服务器框架 &boost;
2018-06-25
网狐IOCP压缩版
2018-06-22
用C++实现的壳
2017-09-14
像加载DLL一样加载EXE
2017-09-10
protobuf-2.61最新版
2017-08-28
Gh0stVC6到VS2010迁移所有问题的解决方法
2017-08-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人