VC知识点滴
yuri99
这个作者很懒,什么都没留下…
展开
-
关于socket中阻塞,非阻塞,同步,异步的概念
1.Send分为阻塞和非阻塞,阻塞模式下,如果正常的话,会直到把你所需要发送的数据发完再返回;非阻塞,会根据你的socket在底层的可用缓冲区的大 小,来将你的缓冲区当中的数据拷贝过去,有多大缓冲区就拷贝多少,缓冲区满了就立即返回,这个时候的返回值,只表示拷贝到缓冲区多少数据,但是并不代表发 送多少数据,同时剩下的部分需要你再次调用send才会再一次拷贝到底层缓冲区。 2.同步和异步是针对原创 2010-05-21 15:57:00 · 700 阅读 · 0 评论 -
vs2005后注意unicode编码
<br />在VC++ 2005以前,应用程序默认都是关闭对Unicode的支持的,而在VC2005中,默认打开了对它的支持,CString对应的字符串应该是TCHAR,TCHAR的定义是这样的, #ifdef _UNICODE typedef wchar_t TCHAR ; #else typedef char TCHAR; #endif 若你工程默认是使用多字节字符集,无需转换。<br />原创 2011-01-10 14:20:00 · 958 阅读 · 0 评论 -
隐藏控制台程序的窗口
这一句隐藏控制台 #pragma comment(linker, "/subsystem:/"windows/" /entry:/"mainCRTStartup/"" )原创 2010-05-21 16:37:00 · 419 阅读 · 0 评论 -
操作符重载的一个例子
class CExample{public:CExample(){pBuffer=NULL; nSize=0;}~CExample(){delete pBuffer;}CExample(const CExample&); //拷贝构造函数CExample& operator = (const CExample&); //赋值符重载void Init(int n)原创 2010-05-21 16:20:00 · 511 阅读 · 0 评论 -
Socket 的 Send Recv 的长度问题? (转)
一个包没有固定长度,以太网限制在46-1500字节,1500就是以太网的MTU,超过这个量,TCP会为IP数据报设置偏移量进行分片输。现在一般可允许应用层设置8k(NTFS系统)的缓冲区,8k的数据由底层分片,而应用层看来只是一次发送。windows的缓冲区经验值是4kSocket本身分为两种,流(TCP)和数据报(UDP),你的问题针对这两种不同使用而结论不一样。甚至还和你是用阻塞、还是非阻塞S转载 2010-05-21 16:05:00 · 2139 阅读 · 0 评论 -
C++预处理的说明
预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代码,检查包含预处理指令的语句和宏定义转载 2010-05-21 15:28:00 · 417 阅读 · 0 评论 -
zlib的使用
zlib 是通用的压缩库,提供了一套 in-memory 压缩和解压函数,并能检测解压出来的数据的完整性(integrity)。zlib 也支持读写 gzip (.gz) 格式的文件。下面介绍两个最有用的函数——compress 和 uncompress。int compress(Bytef *dest, uLongf *destLen, const Bytef *source, uLon原创 2010-05-21 16:34:00 · 1638 阅读 · 0 评论 -
原来vc.net和vc是这么回事
Visual Studio 2005支持两种截然不同但又紧密相关的C++语言。该系统完全支持原来的ISO/ANSI标准C++,同时还支持名为C++/CLI的新版C++。C++/CLI由Microsoft公司开发,现在是ECMA标准。这两种C++版本互为补充,各自完成不同的任务。ISO/ANSI C++用于开发在本地计算机上运行的高性能应用程序,而C++/CLI专门为.NET Framework开发原创 2010-05-21 16:17:00 · 722 阅读 · 0 评论 -
STL使用上的小小总结
stl从接触到使用,还是很长一段时间了。当初只为了能够简单使用,很多细节的东西,都不了解,本以为不会出问题。后来却带来很多麻烦。我只使用了list和map,但是相信会用这两个其他的,也能很好理解了。误区:1.以为stl容器不会保存具体的内容,只会保存指针。事实却是相反的,stl的就是容器。可以保存对象,结构体,对象指针,基本类型。而stl的保存是复制操作的。所以就算用指针也是复制的原创 2010-05-21 16:15:00 · 794 阅读 · 0 评论 -
函数声明的前缀修饰
其实就是在函数声明的时候多加一个关键字,比如很多API函数就是象这样声明的: int WINAPI MessageBoxA(HWND,LPCSTR,LPSTR,UINT); 而WINAPI实际上就是__stdcall. 大多数API都采用__stdcall调用规范,这是因为几乎所有的语言都支持__stdcall调用.相比之下,__cdecl只有在C语言中才能用.但是__cdec原创 2010-05-21 15:24:00 · 986 阅读 · 0 评论 -
union和struct的区别
union似乎不太常用,我反正是没有用过,看过他的特性之后,我也不知道什么可能会用到它。不过还是弄明白到底是什么意思好~~1. 联合说明和联合变量定义 联合也是一种新的数据类型, 它是一种特殊形式的变量。 联合说明和联合变量定义与结构十分相似。其形式为: union 联合名{ 数据类型 成员名; 数据类型 成员名;原创 2010-05-21 14:14:00 · 552 阅读 · 0 评论 -
通过WINET实现的http断点下载
head文件httpdown.h#pragma once#include #define HTTP_MAX_TASK_NUM 1024#define SZ_HEAD "Accept: */*/r/nUser-Agent: Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)/r/n"struct TASK{CStri原创 2010-05-21 16:46:00 · 683 阅读 · 0 评论 -
mfc下文件的基本操作
1.文件的查找 当对一个文件操作时,如果不知道该文件是否存在,就要首先进行查找。MFC中有一个专门用来进行文件查找的类CFileFind,使用它可以方便快捷地进行文件的查找。下面这段代码演示了这个类的最基本使用方法。 CString strFileTitle; CFileFind finder; BOOL bWorking = finder.FindFile("C://windows转载 2010-05-21 16:29:00 · 415 阅读 · 0 评论 -
vs2008中编译的程序,出现应用程序配置不正确的问题
vs2008中编译的程序,出现应用程序配置不正确的问题解决办法,我就只认得两个:1.把vs2008安装目录下的,如:C:/Program Files/Microsoft Visual Studio 9.0/VC/redist/Debug_NonRedist/x86/Microsoft.VC90.DebugCRT这个文件夹下的4个dll拷到跟exe程序一起就可以运行了。2.静态链接原创 2010-05-21 16:24:00 · 440 阅读 · 0 评论 -
C++关闭和创建进程
在VC程序中如何结束系统正在运行的其他进程(该进程必须有窗口界面),其实很简单,按如下步骤进行即可: 1.取得进程的句柄(利用FindWindow函数得到); 2.获取进程ID号(用GetWindowThreadProcessId函数获取); 3.打开进程,OpenProcess函数中的第一个参数设为PROCESS_TERMINATE,就可以获取处理该进程的句柄; 4.利用原创 2010-05-21 16:10:00 · 10383 阅读 · 2 评论 -
ULONGLONG类型的使用,适合存储文件的大小(4G以上的)
<br />mfc里面的CFile文件获取到文件的大小,使用的是:file.GetLength(),返回的类型为ULONGLONG,这个对于大于4G的文件来说,才是足够的.<br />我原以为用一个long型就可以保存下这个大小,结果错的离谱.<br /> <br />long型在win32平台下,就是32位的,跟int其实就是一回事.唉,害苦我了,不知道为什么一直以为long是64的.<br /> <br />所以vc里面写64位的int都是这样定义的 _int64 <br /> <br />但是一般使原创 2011-02-18 16:30:00 · 8778 阅读 · 2 评论