`
duoerbasilu
  • 浏览: 1541678 次
文章分类
社区版块
存档分类
最新评论
文章列表
临界区(Critical Section) 保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个线程进 入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共 享资源的目的。 临界区包含两个操作原语: EnterCriticalSection() 进入临界区 LeaveCriticalSection() 离开临界区 EnterCriticalSection()语句执行后代码将进入临界区以后无论发生什么, ...
引言: 在c/c++程序设计中,经常采用printf来调试程序,但是在要发布程序时不得不从代码中删掉那些多余的printf语句,这是一项繁琐的工作。由此想到可变参数的宏,引文介绍了如何定义可变参数的宏,以及在不同C标准和不同 ...
Relation with Conversion 1. WCHAR / TCHAR: WideCharToMultiByte() wcstombs() CString() ATL macros: OLE2A(),W2T(),W2CT(),lstrcpy() NOTE: #include <atlconv.h> swprintf(wchar,L"%LS",char); wcscpy(wchar,L"ActiveDesktop"); 2. GUID、SYSTEMTIME、BSTR、char*和CString转换 ...
习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于 编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时, 编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不 ...
如果想要有效的管理一个稍微复杂一点的体系,针对其中事物的一套统一、带层次结构、清晰明了的命名准则就是必不可少而且非常好用的工具。 活跃在生物学、化学、军队、监狱、黑社会、恐怖组织等各个领域内的大量有识先辈们都曾经无数次地以实际行动证明了以上公理的正确性。除了上帝(设它可以改变世间万物的秩序)以外,相信没人有实力对它不屑一顾。 在软件开发这一高度抽象而且十分复杂的活动中,命名规则的重要性更显得尤为突出。一套定义良好并且完整的、在整个项目中统一使用的命名规范将大大提升源代码的可读性和软件的可维护性。 在引入细节之前,先说明一下命名规范的整体原则: 同一性 在编写一个子模 ...
__cdecl __fastcall与 __stdcall 调用约定: __cdecl __fastcall与 __stdcall,三者都是调用约定(Calling convention),它决定以下内容:1)函数参数的压栈顺序,2)由调用者还是被调用者把参数弹出栈,3)以及产生函数修饰名的方法。 1、__stdcall调用约定:函数的参数自右向左通过栈传递,被调用的函数在返回前清理传送参数的内存栈, 2、_cdecl是C和C++程序的缺省调用方式。每一个调用它的函数都包含清空堆栈的代码,所以产生的可执行文件大小会比调用_stdcall函数的大。函数采用从右到左的压栈方式。注意: ...
1 .基于事件套接字集合的select 模型 select (选择)模型是Winsock 中最常见的I/O 模型。之所以称其为“select 模型”,是由于它的“中心思想”便是利用select 函数,实现对I/O 的管理!最初设计该模型时,主要面向的是某些使用Unix 操作系统的计算机,它们采用的是Berkeley 套接字方案。select 模型已集成到Winsock 1.1 中,它使那些想避免在套接字调用过程中被无辜“锁定”的应用程序,采取一种有序的方式,同时进行对多个套接字的管理。 select 模型本质上是一种分类处理思想,预先声明 ...
目录: 一、WinSock I/O模型分析 1.WSAAsuncSelect模型 2.WSAEventSelect模型 3.重叠(Overlapped)I/O模型 二、聊天软件的设计与分析 1.程序功能 2.程序设计 3.实现是的关键点 三、体会 四、源代码 一、WinSock I/O模型分析 Winsock提供了五种套接字I/O模型来解决这些问题.他们分别是select(选择),WSAAsyncSelect(异步选择),WSAEventSelect (事件选择), overlapped(重叠) , completion port(完成端口) . ...
服务器端: #include <Winsock2.h> #include <stdio.h> void InitSocket() { WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 2, 2 ); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) { /* Tell the user that we could not find a usable */ ...
Award“INTEGRATED PHRIPHERALS SETUP”中,有个“PWRON After PWR-Fail”的设置选项有 三种,分别为“On(开机)”、“Off(关机)”和“Former-Sts(恢复到到断电前状态 )”。设置成ON在电脑通电时就自动开机了。AMI"Advanced"---"SuperIO Configuration"---"Restore on AC Power Loss by IO"有三个选项Power Off(默认)/Power ON/Last State改成Power ON在电脑通电时就自 ...
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!--velocity配置--> <dependency> <groupId>org.apache.velocity</groupId& ...
前一篇文章中说到了LOAD命令,这里就来详细的给自己,顺便也给大家讲解下LOAD命令和批处理的数据导入功能。用的时候感觉MySQL用起来真的比较滋润。。。。 批处理导入文件,从sql文件导入数据到数据库中 ,批处理是一种非交互式运行mysql程序的方法,如同您在mysql中使用的命令一样,你仍然将使用这些命令。 为了实现批处理,您重定向一个文件到mysql程序中,首先我们需要一个文本文件,这个文本文件包含有与我们在mysql中输入的命令相同的文本。 比如我们要插入一些数据,使用包含下面文本的文件(文件名为New_Data.sql,当然我们也可以取名为New_Data.txt及任何其他的合法 ...
<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves/> <w:TrackFormatting/> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing ...
判断文件结束有两种方法:EOF和feof() 查看stdio.h可以看到如下定义: #define EOF (-1) #define _IOEOF 0x0010 #define feof(_stream) ((_stream)->_flag & _IOEOF) 由此可以看出,这两种方式的原理是不同的。 有人说EOF只能用于文本文件,其实不然,还要看定义的变量的类型。下面这段程序对文本文件和二进制文件都可以: int c; while((c=fgetc(fp)) != EOF) { printf("%X/n", c); } 如果 ...
上一篇刚安装好了MySQL数据库,详情可以点击这里 http://aboutphp.blog.163.com/blog/static/128166613200981810304273/edit/ 现在我们来安装下PHP(PHP的作用是用来解译服务端的PHP语言用的,利用它可以将PHP代码解释之后返回到客户端),因为我们要用PHP+MySQL进行很牛B的编程嘛!!! 首先我下载的是下图所示的版本,接着点next就行了!! 接着选择Apache的版本,因为刚说了PHP是服务器的语言,需要架上服务器上面的哦。。。看看你电脑上装的是Apache的哪个版本或者IIS也是可以的,反 ...
Global site tag (gtag.js) - Google Analytics