![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++学习
文章平均质量分 78
swj2009
这个作者很懒,什么都没留下…
展开
-
vc中socket编程步骤
<br />sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。在这个程序中,将两个工程添加到一个工作区。要链接一个ws2_32.lib的库文件。 服务器端编程的步骤: 1:加载套接字库,创建套接字(WSAStartup()/socket()); 2:绑定套接字到一个IP地址和一个端口上(bind()); 3:将套接字设置为监听模式等待连接请求(listen()); 4转载 2010-12-04 20:49:00 · 702 阅读 · 0 评论 -
钩子函数与动态链接库
一:引言: 你也许一直对金山词霸的屏幕抓词的实现原理感到困惑,你也许希望将你的键盘,鼠标的活动适时的记录下来,甚至你想知道木马在windows操作系统是怎样进行木马dll的加载的…..其实这些都是用到了windows的钩子函数。因此本文将对钩子函数的相关知识进行阐述。当然,转载 2011-08-22 22:06:02 · 587 阅读 · 0 评论 -
Bitblt函数(API)祥解
Bitblt作用将某一内存块的数据传送到另一内存块,前一内存块被称为"源",后一内存块被称为"目标"图象程序开发者使用Blit的函数在内存中将某页面上的一幅位图经过一定的变换转移到另一个页面上原形说明:Declare Function BitBlt Lib "gdi32"转载 2011-08-04 10:40:11 · 475 阅读 · 0 评论 -
Windows屏幕广播编程技术系列一
windows屏幕广播编程技术系列一作者近期开发了一套屏幕广播教学软件,作者愿与广大的VC++编程爱好者共享其中的各种技术及经验心得,屏幕的抓取与显示仅是其中的第一步和一个技术点,其他技术与细节将在以后的文章中逐步讲解。许多VC++程序员都遇到过这样的难题,利用CreateCom转载 2011-07-29 14:01:38 · 723 阅读 · 0 评论 -
线程间通信方式
<br /> 线程间通信方式 收藏 <br />线程间通信可以通过下列三种方法: <br />1)使用全局变量实现线程间通信 <br />2)使用消息实现线程间通信 <br />3)使用CEvent类实现线程间通信 <br />使用全局变量实现线程间通信: <br /> 定义一个全局变量,不同的线程间可以通过修改全局变量的值来进行通信。例如:定义一个控制线程的全局变量 <br /> volatile int threadController; <br />当 threadControlle转载 2010-11-16 21:28:00 · 6442 阅读 · 1 评论 -
内存分页与分段
<br />1.分段<br />分段本是由于8086是16位总线,为寻址20位内存地址而增加的。在32位操作系统中,分段依然有用。<br />1.1 段描述符 描述该段的安全属性,为一个64位长的值。<br />1.2 段描述符表 表中存放段描述符。<br />1.3 段寄存器 存放段描述符表的索引值,用于段选择子。<br />1.4 gdtr 该寄存器指向全局描述符表(gdt),gdt中保存操作系统使用的代码段,堆栈段等段描述符,及各个任务的ldt,gdt的内容不随任务的切换而切换。48位。<br />1转载 2010-11-15 10:18:00 · 659 阅读 · 0 评论 -
static全局变量,局部变量,函数与普通全局变量,局部变量和函数的区别
全局变量(外部变量)的说明之前冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误转载 2010-11-15 10:10:00 · 691 阅读 · 1 评论 -
const char * 和char *const 区别
当类型为指针时,以星号*为界, const加在左右两边,有不同的意思。1) const int* pa = &a; (可以写成 int const* pa = &a; 注意是以星号为界)2) int* const pa = &a;写法1)表示pa所指向的变量,也就是a的值不可变。写法2)表示pa的指向,也就是pa本身的值不可以变,不可以现在指向a, 跟着指向b.=======================================char ch1 = 'a'; char ch2 = 'b'; con转载 2010-11-08 16:43:00 · 479 阅读 · 0 评论 -
#pragma once 与 #ifndef 解析
为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。 方式一: #ifndef __SOMEFILE_H__ #define __SOMEFILE_H__ ... ... // 一些声明语句 #endif 方式二: #pragma once ... ... // 一些声明语句 #ifndef的转载 2010-11-06 10:42:00 · 383 阅读 · 0 评论 -
全局变量 静态变量
static 声明的变量在C语言中有两方面的特征: 1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。 2)、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。Tips: A.若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度;转载 2011-11-08 15:46:37 · 526 阅读 · 0 评论