![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++/vc++
文章平均质量分 83
有点技术,不多
这个作者很懒,什么都没留下…
展开
-
socket和shutdown
从函数调用上来分析(msdn):一旦完成了套接字的连接,应当将套接字关闭,并且释放其套接字句柄所占用的所有资源。真正释放一个已经打开的套接字句柄的资源直接调用closesocket即可,但要明白closesocket的调用可能会带来负面影响,具体的影响和如何调用有关,最明显的影响是数据丢失,因此一般都要在closesocket之前调用shutdown来关闭套接字。 shu原创 2012-01-06 13:19:12 · 3803 阅读 · 0 评论 -
结构体数组
5 结构体数组 一个结构体变量中可以存放一组数据(如一个学生的学号,姓名,成绩等数据)。如果有10个学生的数据需要参加运算,显然应该用数组,这就是结构体数组。结构体数组与以前介绍过的数据值型数组不同之处在于每个数组元素都一个结构体类型的数据,它们分别包括各个成员(分量)项。5.1 定义结构体数组 和定义结构体变量的方法相仿,只需说明其为数组即可。 struct原创 2012-01-17 17:17:28 · 73356 阅读 · 2 评论 -
指向结构体类型数据的指针
6 指向结构体类型数据的指针 一个结构体变量的指针就是该变量所占据的内存段的起始地址,可以设一个指针变量,用来指向一个结构体变量,此时该指针变量的值是结构体变量的起始地址。指针变量也可以用来指向结构体数组中的元素。6.1 指向结构体变量的指针 指向结构体变量的指针的应用:#include #include #include struct原创 2012-01-17 17:18:35 · 7350 阅读 · 0 评论 -
结构体指针处理链表
7 用指针处理链表7.1 链表概述 链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。 链表有一个 头指针 变量,它存放一个地址,该地址指向一个元素,链表中每一个元素称为 结点,每个结点都应包括两个部分,一为用户需要用的实际数据,二为下一个结点的地址。可以看出,头指针 head 指向第一个元素,第一个元素又指向第二个元素,。。。。直到最后一个元素,该元素原创 2012-01-17 17:30:44 · 13698 阅读 · 0 评论 -
INI配置文件的格式
INI配置文件的格式 为什么要用INI文件?如果我们程序没有任何配置文件时,这样的程序对外是全封闭的,一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,这样很不好,所以要用配置文件,让程序出厂后还能根据需要进行必要的配置;配置文件有很多如INI配置文件,XML配置文件,还有就是可以使用系统注册表等。 本文主要是为读者在实现读写INI原创 2012-01-17 14:56:40 · 628 阅读 · 0 评论 -
error LNK2005: _DllMain@12 already defined in xxx.OBJ
用Visual C++编写DLL,如果在new project时选了MFCDLL,而后又想写成RegularDLL,即拥有自己的DllMain()入口函数,则在build时会遇到类似如下的link错误: error LNK2005:_DllMain@12 already defined in xxx.OBJ几种解决方案:1, 你只需要在工程设置里面,把WIN32,NDEBUG,原创 2012-01-06 11:46:32 · 2013 阅读 · 0 评论 -
API SOCKET基础(一) TCP建立连接并通信
转)API SOCKET基础(一) TCP建立连接并通信写这篇日志,并不是要记录令人眼前一亮的算法,只是为了本人健忘的脑袋做一点准备。要进行网络通信编程,就要用到socket(套接字),下面以TCP为例展示如何利用socket通信。要进行socket编程,首先要为工程链接导入库文件 ws2_32.lib ,然后添加头文件#include ,然后在App类的InitInst原创 2012-01-06 11:43:37 · 1186 阅读 · 0 评论 -
Linux C字符串替换函数
#include #include #include /**** @author: cnscn@163.com* @reference: lovesnow1314@http://community.csdn.net/Expert/TopicView3.asp?id=5198221** 用新子串newstr替换源字符串src中的前len个字符内所包含的old原创 2012-03-23 17:11:53 · 1402 阅读 · 0 评论 -
DLL 调用错误 -The value of ESP was not properly saved across a function call.
DLL 调用错误 -The value of ESP was not properly saved across a function call. 在调用DLL中的函数有时候会出现如下对话框的错误:Microsoft Visual C++ Debug Library:Debug Error:Program: ...Module:File: i386/chkesp原创 2012-04-06 14:20:43 · 1908 阅读 · 0 评论 -
ASCII码表完整版
ASCII码表完整版ASCII值控制字符ASCII值控制字符 ASCII值控制字符ASCII值控制字符0 NUT 32 (space) 64 @ 96 、1 S原创 2012-04-06 14:29:07 · 885 阅读 · 0 评论 -
C语言字符串格式化处理(转)
C语言字符串格式化处理(转)一直以来对于C语言处理字符串有一种误解,总觉得很麻烦。对于习惯了java中string各种封装操作的我来说,要习惯C中处理复杂的字符串还真不是一件易事。最近开始喜欢上这个函数 sscanf.int sscanf(constchar*buffer, constchar*format [, argument ] ... );在st原创 2012-04-12 12:57:36 · 2389 阅读 · 0 评论 -
printf 字符串格式化
在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。sprintf 是个变参函数,定义如下: int sprintf( char *buffer, const char *format [原创 2012-04-12 12:58:50 · 913 阅读 · 0 评论 -
游戏开发笔记的链接
http://blog.csdn.net/zhmxy555/article/details/7318264原创 2012-04-17 11:19:51 · 438 阅读 · 0 评论 -
二维字符数组与char** 关系
数组和指针联系很紧密,数组名的含义至少有两种含义: 1. 对应数据中的第一个元素的地址, 2. sizeof为数组大小,而不是指针大小注:《c专家编程》中有详细介绍 指针使用经验总结.pdf 中也有相关内容 编程中,需要向某个函数传递一个字符串数组。测试代码如下:[cpp:showcolumns] view plaincopy原创 2012-04-17 11:17:27 · 512 阅读 · 0 评论 -
vi常用命令和vimrc配置
路径匹配: 插入模式下,输入路径的前几个字符,^X ^F进行补全(^X即),屏幕底部出现匹配的菜单,连续按^F进行选择,也可以用 和进行选择。 多行注释::.,+3 s/^/#/g 注释从当前行起的后三行(不含当前行)vi替换命令用法详解:引用:ranges/pat1/pat2/g 其中 : 这是Vi的命令执行界面。原创 2012-04-17 11:21:24 · 2980 阅读 · 0 评论 -
结构体基础
结构体1 概述 C语言允许用户自己指定这样一种数据结构,它由不同类型的数据组合成一个整体,以便引用,这些组合在一个整体中的数据是互相联系的,这样的数据结构称为结构体,它相当于其它高级语言中记录。 声明一个结构休类型的一般形式如下: struct 结构体名 {成员列表}; 结构体名,用作结构体类型的标志,它又称 结构体标记,大括号内是该结构体原创 2012-01-17 17:10:40 · 1018 阅读 · 0 评论 -
C++ 类访问控制public/private/protected探讨
C++ 类访问控制public/private/protected探讨摘要:本文是从饮水思源BBS C/C++版上一篇帖子引发的思考。当时看到帖子,突然觉得平时见惯了的,在这里似乎变得陌生了,究竟访问控制符怎样起作用,怎样使用,该怎样理解,本文试图给出讨论。原帖如下 1 #include 2 using namespace std; 3 4 class A{原创 2012-01-17 15:21:12 · 583 阅读 · 0 评论 -
string和CString 的比较
string和CString 的比较 (一) 概述 string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中; CString(typedef CStringT>CString)为Visual C++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,主要数据类型有char(原创 2012-01-17 14:57:51 · 478 阅读 · 0 评论 -
C语言中time函数【转载】
C语言中time函数【转载】 C/C++中的日期和时间 头文件 time.h 函数用途函数名 得到处理器时间 clock 得到时间差 difftime 设置时间 mktime 得到时间 time 得到以ASCII码表示的时间 asctime 得到字符串表示的时间 ctime 得到指定格式的时间 strftime 摘要:原创 2012-01-09 10:51:03 · 509 阅读 · 0 评论 -
使用winsock+UDP写的一个简单发送端程序(转)
本程序使用VS2008编写,代码如下: [cpp:firstline[1]] view plaincopyprint?#include #include //在编译采用了WINSOCK2.H的应用程序时,需要链接到WS2_32.LIB库 #pragma comment(lib,"WS2_32.LIB") void main() {原创 2012-01-12 17:28:26 · 554 阅读 · 0 评论 -
使用winsock+UDP写的一个简单接收端程序(转)
本程序使用VS2008编写,代码如下: [cpp:firstline[1]] view plaincopyprint?//先打开服务器端,服务器在执行完recvfrom()后堵塞,等待接收数据... #include #include #pragma comment(lib,"WS2_32.LIB") void main() {原创 2012-01-12 17:30:24 · 564 阅读 · 0 评论 -
chap 13:重载操作符与转换、重载函数的匹配(转)
1、重载操作符必须至少有一个类类型操作数。作为类成员的重载函数,其形参看起来比操作数数目少1;作为成员函数的操作符有一个隐含的this形参,限定为第一个操作数。2、不能重载的操作符有: 条件操作符(?:)、指向类成员操作的指针( .*)、作用域解析操作符(::) 3、不应该重载的操作符: 取址操作符(&)、逗号操作符(,)、逻辑与操作符(&&)、逻辑或操作符(||)4、对于任原创 2012-01-12 17:32:20 · 430 阅读 · 0 评论 -
使用TCP+winsock写的一个简单服务器程序(转)
本代码用VS2008编写: [cpp:firstline[1]] view plaincopyprint?//先打开服务器端,服务器在执行完recv()后堵塞,等待接收数据... #include #include #pragma comment(lib,"WS2_32.LIB") void main() { WSADATA原创 2012-01-12 17:25:12 · 537 阅读 · 0 评论 -
使用TCP+winsock写的一个简单客户端程序(转)
本代码用VS2008编写: [cpp:firstline[1]] view plaincopyprint?#include #include #pragma comment(lib,"ws2_32.lib") void main() { WSADATA wsaData; SOCKET原创 2012-01-12 17:26:13 · 481 阅读 · 0 评论 -
实现服务器端的多线程SOCKET Server(独立监听线程)
实现服务器端的多线程SOCKET ServerC++/VC想要实现的功能:在服务器端有一个控制台程序(或者Windows服务),与多个客户端程序通讯,其中主线程有一个socket绑定在一个固定端口上,负责监听客户端的Socket信息。每当启动一个客户端程序,客户端发送来一个socket连接请求,server端就新开启一个线程,并在其中创建一个socket与该客户端的socket通讯,直原创 2012-01-16 15:30:45 · 2223 阅读 · 0 评论 -
C++ 读写文件
C++ 读写文件fstream提供了三个类,用来实现c++对文件的操作。(文件的创建、读、写)。ifstream -- 从已有的文件读ofstream -- 向文件写内容fstream - 打开文件供读写文件打开模式:ios::in 读ios::out 写ios::app 从文件末尾开始原创 2012-01-17 13:43:27 · 962 阅读 · 0 评论 -
CreateFile用法和例子
CreateFile用法和例子函数原型: HANDLE CreateFile( LPCTSTR lpFileName, //指向文件名的指针 DWORD dwDesiredAccess, //访问模式(写/读) DWORD dwShareMode, //共享模式 LPSECURITY_ATTRIBUTES lpSecurityAttributes, /原创 2012-01-17 13:44:21 · 16893 阅读 · 0 评论 -
C++map的基本操作和使用
C++map的基本操作和使用 1、map简介map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。2、map的功能自动建立Key - value的对应。key 和 value可以是任意你需要的类型。根据key值快速查找记录,查找的复杂度基本是Log(N)原创 2012-01-17 13:45:00 · 29645 阅读 · 0 评论 -
C++ string 详解
C++ string 详解2007-04-22 11:05前言: string 的角色 1 string 使用1.1 充分使用string 操作符1.2 眼花缭乱的string find 函数1.3 string insert, replace, erase 2string 和 C风格字符串3 string 和 Charactor Traits4 string原创 2012-01-17 13:45:49 · 1103 阅读 · 0 评论 -
MFC中获取命令行参数的几种方法
在MFC程序中,可以用以下几种方法来获取命令行参数。为方便说明,我们假设执行了命令:C:/test/app.exe -1 -2方法一::GetCommandLine();将获取到 "C:/test/app.exe" -1 -2方法二for (inti=0;i__argc;i++){__argv[i];将依次得到C:/test/app.exe -1 -2原创 2012-01-17 13:47:01 · 447 阅读 · 0 评论 -
C++的File类文件操作
C++的File类文件操作语言文件系统称为流文件(Stream),正文流(正文文件),二进制流(二进制文件) 缓冲与非缓冲文件 顺序操作文件与随机操作文件 顺序文件:读/写第K个数据块之前必须读/写第1至K-1个数据块; 随机文件:可直接读/写第K个数据块; 正文文件的操作一般是顺序文件; 二进制文件的操作都是随机文件。 一、文件操作的一般过原创 2012-01-17 13:47:43 · 567 阅读 · 0 评论 -
Event Logging 技术简介 (转)
Event Logging 技术简介 1. EVENT LOGGING概述 当错误发生时,系统管理员或技术支持需要知道错误原因是什么,如何恢复丢失数据和阻止错误复现。WINDOWS的Event-logging服务为此提供了解决方案。应用程序,操作系统或其它系统服务可以向该服务记录重要的事件消息,如:磁盘空间不足、没有访问权限等。系统管理员可以通过这些消息来确定原创 2012-01-17 13:48:21 · 930 阅读 · 0 评论 -
打印系统日志(使用API)(转)
通常,我们在编写小型软件时,不太注重使用系统的日志维护功能,而是自己定义日志文件。但当我们的软件变的庞大时,为了更好的维护日志,最好的办法就是使用系统提供的日志功能,系统会自动帮我们进行维护。下面介绍几个打印日志的API:RegisterEventSource函数原型:HANDLE RegisterEventSource( LPCTSTR lpUNCServerName,原创 2012-01-17 13:49:12 · 561 阅读 · 0 评论 -
Linux系统32位与64位GCC编译器基本数据类型长度对照表
Linux系统32位与64位GCC编译器基本数据类型长度对照表GCC 32位sizeof(char)=1sizeof(double)=8sizeof(float)=4sizeof(int)=4sizeof(short)=2sizeof(long)=4sizeof(long long)=8sizeof(long double)=12sizeof(complex原创 2012-01-17 13:50:04 · 779 阅读 · 0 评论 -
GetPrivateProfileString ,WritePrivateProfileString详解
::WritePrivateProfileString( _T("Options"), _T("Name"), m_strName, pApp->m_szIni );INI文件编程,WINAPI函数WritePrivateProfileString,GetPrivateProfileString 收藏 在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的原创 2012-01-17 14:55:49 · 1822 阅读 · 0 评论 -
C++ GetTickCount()和Sleep()
C++GetTickCount()和Sleep()GetTickCount返回(retrieve)从操作系统启动到现在所经过(elapsed)的毫秒数,它的返回值是DWORD。GetTickCount函数的原型为DWORD GetTickCount(void);它在winbase.h头文件中定义为WINBASEAPIDWORDWINAPIGetTickCount原创 2012-01-06 13:20:02 · 32740 阅读 · 1 评论