- 博客(19)
- 资源 (16)
- 收藏
- 关注
转载 使用Win32API实现Windows下异步串口通讯(上.下)
目录:1. 异步非阻塞串口通讯的优点2. 异步非阻塞串口通讯的基本原理3. 异步非阻塞串口通讯的基础知识4. 异步非阻塞串口通讯的实现步骤2005.01.05一,异步非阻塞串口通讯的优点读写串行口时,既可以同步执行,也可以重叠(异步)执行。在同步执行时,函数直到操作完成后才返回。这意味着在同步执行时线程会被阻塞,从而导致效率下降。在重叠执行时,即使操作还未完成,调用的函数也会立即返回
2009-11-23 23:06:00 1214
转载 使用Visual C++进行串口通信编程
利用Visual C++在windows环境下设计异步串行通信程序可以使用不同的方法。一种方法可以使用windows系统提供的串行口API函数;另一种方法可以直接使用Microsoft公司提供的ActiveX控件MSCOMM.OCX。利用MSCOMM.OCX控件进行串行口程序设计相对比较简单,只要对该控件的属性、事件和方法进行设置和操作,就能完成简单的串行通信功能。而直接使用windows系
2009-11-23 15:16:00 730
转载 什么是字节对齐,为什么要对齐?
现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。比如有些架构的CP
2009-11-22 14:02:00 520
转载 PostQueuedCompletionStatus函数的问题
PostQueuedCompletionStatus函数,向每个工作者线程都发送—个特殊的完成数据包。该函数会指示每个线程都“立即结束并退出”.下面是PostQueuedCompletionStatus函数的定义: BOOL PostQueuedCompletionStatus( HANDLE CompletlonPort, DW0RD dwNumberOfBytesTrlan
2009-11-18 15:58:00 1457
转载 WSAEnumNetworkEvents
做了一个客户端程序连服务器,在线程里面用WSAEventSelect来选择网络事件,实际运行过程中发现客户端对服务器的指令有时根本没反映,(不是每次,只是有时候,但出现频率还是比较高的),我用网络抓包,发现服务器信息已经发到了客户端,但是却没有触发已定义的网络事件了,不知道为什么?请各位帮忙,相关代码如下(省去了具体的数据处理部分),谢谢!! WSAEVENT E
2009-11-18 15:46:00 4477
转载 手把手教你捕获数据包(上)【数据包的游戏系列之二】
手把手教你捕获数据包(上)【数据包的游戏系列之二】 经常看到论坛有人问起关于数据包的截获、分析等问题,幸好本人也对此略有所知,也写过很多的 sniffer ,所以就想写一系列的文章来详细深入的探讨关于数据包的知识。 我希望通过这一系列的文章,能使得关于数据包的知识得以普及,所以这系列的每一篇文章我都会有由浅入深的解释、详细的分析、以及编码步骤,另外附上带有详细注释的源码 ( 为
2009-11-18 15:42:00 966
转载 WSAEventSelect()功能描述
WSAEventSelect()简述:确定与所提供的FD_XXX网络事件集合相关的一个事件对象。 #include int WSAAPI WSAEventSelect ( SOCKET s, WSAEVENT hEventObject, long lNetworkEvents ); s:一个标识套接口
2009-11-18 15:40:00 622
转载 socket编程(udp tcp)代码备忘 C++/C
sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW); 基于TCP的socket编程是采用的流式套接字(SOCK_STREAM)。基于UDP采用的数据报套接字(SOCK_DGRAM).1.TCP流式套接字的编程步骤在使用之前须链接库函数:工程->设置->Link->输入ws2_32.lib,OK!服务器端程
2009-11-18 13:57:00 1090
转载 Microsoft CryptoAPI加密技术(二)
下载本文示例源代码上次我们讲了Microsoft CryptoAPI的构成以及会话密钥的使用。接下来我们将看一下公私密钥对的使用、HASH算法、数字签名等技术。一、 公用密钥加密技术公用密钥加密技术使用两个不同的密钥:公钥和私钥。私钥必须安全的保管好不能被外人知道,而公钥可以告诉任何人,只要他需要。通常公钥是以数字证书的形式发布的。用公私密钥对中的一个密钥加密的数据只能用密钥对中的另一个
2009-11-10 17:36:00 553
转载 Microsoft CryptoAPI加密技术(一)
下载本文示例源代码在这个信息爆炸的时代,我们不得不对信息的安全提高警惕。加密作为保障数据信息安全的一种方式,越来越受到人们的关注。下面,我将把自己对Microsoft CryptoAPI的一些肤浅的理解与大家共享,有什么不妥之处望不吝赐教。一、 加密方法:当初,计算机的研究就是为了破解德国人的密码,人们并没有想到计算机给今天带来的信息革命。随着计算机的发展,运算能力的增强,密码学已经取得了巨大
2009-11-10 17:31:00 529
转载 CreateFileMapping的使用
测试创建和打开文件映射的时候老是得到"句柄无效"的错误, 仔细看了MSDN以后才发觉是函数认识不透, 这里把相关的解释翻译出来 HANDLE CreateFileMapping( HANDLE hFile, //物理文件句柄 LPSECURITY_ATTRIBUTES lpAttributes, //安全设置 DWORD flProtect,
2009-11-10 16:14:00 5076
转载 VC++显示弹出式菜单的两种方法
2005-1-26 方法一:调入菜单资源 ///////////////////////////////////////////////////////////////////////////////////////////// // CMy1View message handlers ///先在Menu资源中添加弹出式菜单,命名:IDR_MENU1 ///再添加CView类的消息W
2009-11-10 11:39:00 1832
转载 _variant_t 数据类型
这个问题的答案比较广泛: 我所知道常用的 1。在执行的SQL语句一般都是_bstr_t 2.Connection 中的RecordsAffected 为VARIANT 3.使用get_Value()获得的记录的值为 VAARIANT 等等。。。 _bstr_t 中记录了字符串的长度, _variant_t 记
2009-11-09 17:59:00 695
转载 多核查找-顺序查找也疯狂
在去年的软件开发2.0技术大会上,我讲了一个支持动态负载均衡的多核查找设计方法。基本思想是采用数据结构分拆的方法,使用了多级的数据结构设计。下面先简要介绍一下这种多级数据结构的设计思路,然后给出一个采用数组顺序查找作为查找表实现的多级数据结构类CDHashArray。在CDHashArray中,对数组的插入和删除都是顺序化的操作,查找也是近似于顺序化的操作,看起来似乎会很慢。实际上对于小
2009-11-09 13:41:00 700
转载 原子操作在多核编程中的使用
现代操作系统中,一般都提供了原子操作来实现一些同步操作,所谓原子操作,也就是一个独立而不可分割的操作。在单核环境中,一般的意义下原子操作中线程不会被切换,线程切换要么在原子操作之前,要么在原子操作完成之后。更广泛的意义下原子操作是指一系列必须整体完成的操作步骤,如果任何一步操作没有完成,那么所有完成的步骤都必须回滚,这样就可以保证要么所有操作步骤都未完成,要么所有操作步骤都被完成。例如在
2009-11-09 13:34:00 1977
转载 SOCKET编程登峰造极之完成端口(上下)
一、什么是完成端口?完成端口---是一种WINDOWS内核对象。完成端口用于异步方式的重叠I/0情况下,当然重叠I/O不一定非使用完成端口不可,还有设备内核对象、事件对象、告警I/0等。但是完成端口内部提供了线程池的管理,可以避免反复创建线程的开销,同时可以根据CPU的个数灵活的决定线程个数,而且可以让减少线程调度的次数从而提高性能。 二、完成端口的内部机制1)创建完
2009-11-06 17:02:00 552
转载 VC用ADO访问数据库全攻略
一、ADO概述ADO是Microsoft为最新和最强大的数据访问范例 OLE DB而设计的,是一个便于使用的应用程序层接口。ADO 使您能够编写应用程序以通过 OLE. DB 提供者访问和操作数据库服务器中的数据。ADO最主要的优点是易于使用、速度快、内存支出少和磁盘遗迹小。ADO在关键的应用方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻量
2009-11-06 10:23:00 413
原创 memcpy和memmove的区(试过不成功)
<!-- document.body.oncopy = function() { if (window.clipboardData) { setTimeout(function() { var text = clipboardData.getData("text"); if (text && te
2009-11-05 15:06:00 594
转载 多线程互斥
1. 仅一条语句用不用考虑线程同步的问题? 当使用高级语言编程时,我们往往会认为一条语句是最小的原子访问,CPU不会在这条语句中间运行其他的线程。这是错误的,因为即使非常简单的一条高级语言的语句,经编译器编译后也可能变成多行代码由计算机来执行。因此必须考虑线程同步的问题。任何线程都不应该通过调用简单的C语句来修改共享的变量。 2. 互锁函数有那些?
2009-11-04 16:21:00 1911
Alexandrescu. Modern C++ Design, Generic Programming and Design Patterns.chm
2009-04-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人