- 博客(54)
- 资源 (14)
- 收藏
- 关注
原创 Cstring转char[n]或char*
看了网上的很多转化都是垃圾,索性自己亲自来搞,m_server为类中定义的char[16]类型的数组名,下面的代码给大家演示了到char[16]的转化其中过程中也包括了到char*的转化,很容易套用的来达到Cstring转char[]或char*的目的:void CGlobalData::SetServerIP(CString strip){ wchar_t* wChar
2012-07-11 10:50:24 1296
转载 想让你的某个文件不被删除不被移动不被重命名吗?很简单,see it!!!
#include#includeBOOL OccupyFile( LPCTSTR lpFileName );//锁定文件BOOL ReleaseFile(LPCTSTR lpFileName);//释放文件 HANDLE hTargetHandle;int main(){ OccupyFile("c:\\111.txt");
2012-07-31 09:17:30 1540 1
转载 航空公司管理系统(VC++ 与SQL 2005)
系统环境:Windows 7软件环境:Visual C++ 2008 SP1 +SQL Server 2005本次目的:编写一个航空管理系统 这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面还有FLASH简易演示。动画演示基本的
2012-07-27 11:00:34 1540
转载 用C语言编写简单的病毒
一、什么是病毒 恶意软件可能是第一个对我们产生影响的计算机安全问题.所以病毒在信息安全中是很重要的. 我们要对付病毒,就要了解病毒. 写一些病毒是一个很好的办法. 如果要写一个病毒,先要知道它是什么.可以给病毒一个定义,这一定义是被广泛认可的。Frederic Cohen博士在《计算机病毒简短讲座》中提到的:“……一种能够通过修改自身来包括或释放
2012-07-26 20:29:00 1916
转载 TCP连接关闭总结
由于涉及面太广,只作简单整理,有兴趣的可参考《UNIX Networking Programming》volum 1, Section 5.7, 5.12, 5.14, 5.15, 6.6 以及7.5 SO_LINGER选项。以一个简单的echo服务器为例,客户端从标准输入读入字符,发送给服务器,服务器收到后再原样返回,客户端收到后打印到标准输出。那么,关于套接字的关闭有以下几种情
2012-07-26 16:46:55 1184
转载 TCP连接建立与关闭
TCP 是一个面向连接的协议,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。本节将详细讨论一个TCP 连接是如何建立的以及通信结束后是如何终止的。建立一个 TCP 连接 TCP使用三次握手 ( three-way handshake ) 协议来建立连接,图 3-10 描述了三次握手的报文序列。这三次握手为:请求端(通常称为客户)发送一个 SYN 报文
2012-07-26 16:45:00 811
原创 通过socket获取对方ip地址
struct sockaddr_in sa; int len = sizeof(sa); if(!getpeername(sockfd, (struct sockaddr *)&sa, &len)) { printf( "对方IP:%s ", inet_ntoa(sa.sin_addr)); printf( "对方PORT:%d "
2012-07-25 20:13:29 11228
转载 typedef和typename关键字
1、类型说明typedef类型说明的格式为:typedef 类型 定义名;类型说明只定义了一个数据类型的新名字而不是定义一种新的数据类型。定义名表示这个类型的新名字。例如: 用下面语句定义整型数的新名字:typedef int SIGNED_INT;使用说明后, SIGNED_INT就成为int的同义词了, 此时可以用SIGNED_INT 定义整型
2012-07-25 16:46:10 928
转载 STL源码剖析 -- 读书笔记
1. ptrdiff_t、difference_type,头尾之间的距离。2. 空间配置器(allocator)定义于中3. 迭代器(iterator)最总要的作用就是对operator* 和 operator->进行重载(overloading)工作。4. auto_ptr:用来包装原生指针(native pointer)的对象,内存漏洞(memory leak)问题可藉此获得解决。
2012-07-25 16:08:27 952
转载 用c++写的简单的arp欺骗检测工具
[hide]原理:需要将网关ip地址写入gateway.ini,第一次运行的时候自动生成mac.ini文件,保存网关原始的mac地址,每两秒钟自动获取一次网关ip跟原始的mac做对比,不对则提示。对于c++操作ini文件的还是没搞定,用了两个配置文件。 主要代码如下: #include
2012-07-25 09:50:24 2069
转载 MFC 动态菜单 及响应(转)
做一个MFC程序的时候碰到一个需求。就是需要根据定制情况,动态生成菜单,菜单的具体结构和信息是之前不知道的(因此不能利用工具构造),点击不同类型的菜单会触发特定的一类事件(需要动态绑定事件)。这种需求实际是蛮不BT的,很多场合下都可能会有,用C#写了个Demo花了不到半个小时。但转到MFC下来写,就费尽周折。其实这个问题代表了在MFC中动态创建资源绑定事件的一般性问题,所以总结一下。 动态
2012-07-24 14:41:04 1321
转载 Socket send函数和recv函数详解
send函数int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。该函数的第一个参数指定发送端
2012-07-24 10:34:32 692
转载 缓冲区大小及限制
TCP输出下图展示了应用进程写数据到TCP套接口的过程。 每一个TCP套接口有一个发送缓冲区,我们可以用SO_SNDBUF套接口选项来改变这个缓冲区的大小。当应用程序调用write时,内核从应用程序进程的缓冲区中拷贝所有数据到套接口的发送缓冲区。如果套接口的发送缓冲区容不下应用程序的所有数据(或是应用程序的缓冲区大于套接口发送缓冲区,或是套接口发送缓冲区还有其他数据
2012-07-24 10:23:19 4861
转载 socket的发送与接收缓冲区(转)
应用程序可通过调用send(write, sendmsg等)利用tcp socket向网络发送应用数据,而tcp/ip协议栈再通过网络设备接口把已经组织成struct sk_buff的应用数据(tcp数据报)真正发送到网络上,由于应用程序调用send的速度跟网络介质发送数据的速度存在差异,所以,一部分应用数据被组织成tcp数据报之后,会缓存在tcp socket的发送缓存队列中,等待网络空闲时
2012-07-24 10:18:36 1970
原创 new(p) T1(value)
这叫place new,在指针p所指向的内存空间创建一个类型为T1的对象。调用的构造函数接受一个类型为const T2&(或其他兼容类型)的参数new placement 你可以简单的理解为C中的realloc,就是在已有空间的基础上,重新分配一个空间,可以不破坏原来数据,也可以把数据全部用新值覆盖 一下是我搜集的一些笔记 如果你想在预分配的内存上创建对象,用缺
2012-07-23 21:48:25 5753
原创 set_new_handler
在读Effecitve c++ 在set_new_handler方面疑问 比如我设置了 void a(){} set_new_handler(a); int *p=new int[100000000000]; 既然set_new_handler只是设置函数 它返回上次先前那new-handler 自然operator new不是调用它来调用new-h
2012-07-23 21:29:52 859
转载 打造支持中英文键盘记录(从原理解剖)
Code:format PE GUI 4.0 DLL entry DllEntry include 'win32ax.inc' WM_IME_COMPOSITION equ 010Fh GCS_RESULTSTR equ 0800h section '.data' data readable wr
2012-07-23 20:35:17 1298
转载 int转char*
1.控制台中(MFC中同理),int转char*用sprintf函数,在头文件中(其实itoa也可以,但不建议使用) 在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。 sprintf
2012-07-23 20:30:33 7779
转载 char 转wchar_t 及wchar_t转char
原文来自 http://haofu123.blog.163.com/blog/static/178294920096243161997/利用widechartomultibyte来转换的函数通常适合于window平台上使用#include #include int _tmain(int argc, _tchar* argv[]){wchar_
2012-07-23 10:43:34 738
转载 CListCtrl使用技巧
以下未经说明,listctrl默认view 风格为report1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观的理解:w
2012-07-23 09:46:50 488
转载 递归与迭代
递归与迭代迭代(iterative)和递归(recursive)可以相互转化。常常要求把递归转化为迭代。因为递归得耗费大量时间。最大公因数最大公因数,又称最大公约数,英文Greatest Common Divider,缩写GCD.n(≥2)个自然数a1,a2,…,an的最大公因数通常有两种定义方式:1. 它们的所有公因数中最大的那一个;2. 如果自然数m是这n个自然数的
2012-07-22 15:54:53 997
转载 递归和迭代的区别
递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己.一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大的减少代码量.递归的能力在于用有限的语句来定义对象的无限集合.使用递归要注意的有两点:1)递归就是在过程或函数里面调用自身;2)在使用递归时,必须有一个明确的递归结束条件
2012-07-22 15:54:15 520
转载 QQ通信原理概述
一、登陆。 不管UDP还是TCP,最终登陆成功之后,QQ都会有一个TCP连接来保持在线状态。这个TCP连接的远程端口一般是80,采用UDP方式登陆的时候,端口是8000。因此,假如你所在的网络开放了80端口(80端口是最常用端口。。就是通常访问Web的端口,禁掉它的话,你的网络对你来说价值已经不大了),但没有屏蔽腾讯的服务器IP,恭喜你,你是可以登陆成功QQ的。二、聊天消息通
2012-07-20 21:46:00 1394
转载 内存对齐的规则以及作用
首先由一个程序引入话题: 1 //环境:vc6 + windows sp2 2 //程序1 3 #include 4 5 using namespace std; 6 7 struct st1 8 { 9 char a ;10 int b ;11 short c ;12 };13 14 struct st
2012-07-19 16:49:53 585
转载 select设置超时------(1)使用说明.另附带setsockopt使用讲解
超时这个问题微软开发者在新版本的编译器中如VS2008,就在recv参数4中添加了MSG_WAITALL,这个东西在低版本里是看不到的.如VS2003.你可以用VS2003新建1个win32控制台应用程序,VS2008新建1个win32控制台应用程序,recv第4个参数MSG_WAITALL,在08编译正常,而在03会提示 error C2065: “MSG_WAITALL” : 未声明的
2012-07-19 10:16:44 3218
转载 SELECT超时小结
目前各平台通用的设置socket connect超时的办法是通过select(),具体方法如下1.建立socket;2.将该socket设置为非阻塞模式;3.调用connect();4.使用select()检查该socket描述符是否可写;5.根据select()返回的结果判断connect()结果;6.将socket设回阻塞模式。
2012-07-19 10:13:11 2104
转载 STL中map的数据结构
1.map定义map是键-值对的集合。map类型通常可以理解为关联数组:可使用键作为下标来获取一个值,正如内置数组类型一样。而关联的本质在于元素的值与某个特定的键相关联,而并非通过元素在数组中的位置来获取。map模板原型:template , class Allocator = allocator > > class map;
2012-07-18 11:08:39 1039
转载 STL map
很多人都会遇到 在各个功能模块中遇到多个for循环相套导致慢、卡等现象,循环主要是 一对多查找,经过一段时间查询,终于找到一对一查找的算法; Map是c++的一个标准容器,它提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!1. map构造函数;mapmapstring; mapmapint;mapmapstr
2012-07-18 11:05:02 548
转载 结构体中慎用指针
转载请注明出处作者:小马今天写一个基于TCP/IP的数据包发送程序时, 遇到一个问题, 我发送了一个数据包过去, 服务端可以接收到,但接收到的数据长度小于我实际传送的数据长度. 这个bug调了很久, 开始还认为是服务器端的程序问题, 最终发现是栽在了指针上面. 发送数据包的包格式形如下面的定义:[cpp] view plainco
2012-07-17 16:48:05 832
转载 VC中获取主机名和IP地址的方法
1、创建一个对话框应用程序,加载windows socket的动态连接库,方法为在对话框的InitDialog函数中增加如下代码: WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD(2,0); err = WSAStartup(wVersionRequested,&wsa
2012-07-17 16:47:06 1232
原创 vc6.0 sdk安装的方法及 error C2065: 'memcpy_s' : undeclared identifier
Visual C++ 6.0 支持的最新SDK下载地址:现在 VC++6.0 支持的最新 SDK 只有2个了,下载地址如下:For Server2003 3790.0 RTM: http://www.microsoft.com/msdownl ... pdate/psdk-full.htm 115网盘下载地址:http://u.115.com/file/f81c
2012-07-16 15:24:43 6361 2
原创 设计模式学习
大家要是想学习设计模式就看下面的连接:http://www.cnblogs.com/hegezhou_hot/category/260424.html,讲的太好了,其他的我感觉和这个一比弱爆了
2012-07-16 10:26:35 714
转载 支持通用框架的threadpool代码
在编写服务器时,很多人会考虑到应用线程池来解决多线程的问题,当然我也越到了这个问题,所以顺便查找了一下linux的通用框架线程池,并花了两天把它实现了出来,大体过程描述可以在http://blog.csdn.net/hwalk/archive/2007/06/18/1657110.aspx 这个网址中查看流程,代码部分可以在我的资源:http://jaff20071234.
2012-07-16 10:20:57 622
转载 Windows系统线程池+利用windows自带的线程池
come from:http://www.fuzhijie.me/?p=65一直想弄明白Windows的IO完成端口是什么,这个词语每每出现在我眼前时总是伴随着鲜花和赞美,因此我便将其同许多我从来没搞懂过的东西一起归为神秘一类。这两天一直在看《Windows核心编程》,学到了不少东西,但是同别的英文经典一样,中文版经常让我感觉不知所云,我很不喜欢书中的例子都是用C++来写,并且都有图形界面,这
2012-07-16 10:13:23 1532
转载 《Windows via C/C++》学习笔记 —— Windows 线程
线程池(thread pool),允许有多个线程同时存在,并发执行,并且这些线程受到统一管理。 在Windows Vista中,提供了全新的线程池机制,一般这些线程池中的线程的创建的销毁是由操作系统自动完成的。 Windows Vista 中重新设计了线程池,提供了一组新的线程池API。因此,本篇讨论的仅仅在Windows Vista系统,或其以上的Windows版本中有效。 当
2012-07-16 10:08:41 1252
转载 别人的开发驱动经验(转载)
开发驱动程序的过程编写内核模式的代码于应用程序的代码是不同的,因为驱动程序是操作系统的信任的部分。它的代码必须遵循特殊的规则,小心的编写。驱动程序开发策略 像大多数的软件,驱动程序也使用有组织的开发方法。这个部分将介绍一些技巧来尽量减少开发时间。 使用规范的开发方法 一般的,如果编写一个设备驱动程序没有一个开发策略。而是去匆忙的测试全新的硬件,往往测
2012-07-16 10:01:12 643
转载 互斥量、临界区、信号量和时间的作用与区别
不管是辅助线程还是用户接口线程,在存取共享资源时,都需要保护共享资源,以免引起冲突,造成错误。处理方法类似于Win32API函数的使用,但MFC为我们提供了几个同步对象C++类,即CSyncObject、CMutex、CSemaphore、CEvent、CCriticalSection。这里,CSyncObject为其它四个类的基类,后四个类分别对应前面所讲的四个Win32API同步对象。
2012-07-13 11:05:47 1787
转载 选择(select)模型
选择(select)模型是Winsock中最常见的 I/O模型。核心便是利用 select 函数,实现对 I/O的管理!利用 select 函数来判断某Socket上是否有数据可读,或者能否向一个套接字写入数据,防止程序在Socket处于阻塞模式中时,在一次 I/O 调用(如send或recv、accept等)过程中,被迫进入“锁定”状态;同时防止在套接字处于非阻塞模式中时,产生WSAEWOULD
2012-07-13 09:46:15 722
转载 基于select I/O模型的远程目录浏览与多线程文件下载
发布日期:2007-02-08 11:19浏览次数:290次标 签:ATL文章评分:5.0操 作:下载源文件打印李建成称号:未设置简介:...文章概要:本文详细介绍了用select模型配合多线程来实现远程目录浏览与多线程文件下载。
2012-07-13 09:26:21 1687
转载 三角形测试用例设计
某程序规定:"输入三个整数 a、 b、 c分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算 … "。用等价类划分方法为该程序进行测试用例设计。之前面试了几个地方都问了这个题,网上找了下答案。不懂测试理论,也不知道啥叫等级类,也不知道哪个答案更准确。。。。不知道为什么所有答案给出的用例里没有测试边界值,极大的值,负数,小数等
2012-07-13 09:16:31 8879
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人