自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (17)
  • 收藏
  • 关注

转载 “主线程”探究,谈谈我对“主线程”的理解

今天看到论坛上有人问关于”主线程“的问题,写篇文章来谈谈自己的看法。  我认为”主线程“是一个经验概念,所谓经验概念,就是说程序员印象中有这么个东西,但是在系统层面,并没有对线程进行”主“和”辅“的区分。为什么大家会有这种”主线程“的概念的,可能是由于常见的编程框架如MFC、VCL、包括SDK都存在一个共同的特点,从某个函数开始执行,这个函数执行完毕后,程序退出。那么这个函数所在的线程就可

2013-07-31 23:23:56 884

转载 获取本机收到的UDP数据包的目标地址

本机收到UDP数据时,通过recvfrom函数可以直接获取发送者的地址:[cpp] view plaincopyprint?int recvfrom(    __in          SOCKET s,    __out         char* buf,    __in          int len,    __in

2013-07-31 17:14:30 3297

转载 使用TransmitFile函数需要注意的几点

TransmitFile是专门用来进行文件传输的函数,它的优势在于在内核将文件句柄和套接字联系起来进行发送,避免了将文件内容读到应用层再写到内核的过程,提高了效率。函数声明如下:BOOL TransmitFile( SOCKET hSocket, HANDLE hFile,

2013-07-31 17:07:49 2916

转载 WinSock中关于阻塞接收/发送超时的一个BUG

在阻塞模型中,recvfrom和recv函数默认都是永久阻塞的,即没有数据到来和不发生错误的情况下函数的调用不会返回,但是可以调用setsockopt来设置阻塞时间。设置了合适的阻塞时间,可以让接收函数超时返回。[cpp] view plaincopyprint?int setsockopt(    __in          SOCKE

2013-07-31 17:04:09 2173

转载 原来C++中struct也有构造函数与析构函数,也可以有访问类型控制

原来C++中struct也有构造函数与析构函数,也可以有访问类型控制,可以用private关键字。如下所示:#include  #include   struct point   {      public:      point():x_(0.0),y_(0.0)      {          std::cout"default construc

2013-07-30 14:41:48 1285

转载 串口编程之五:常用函数

在进行串口通信时,经常需要用到下列一些API函数:CreateFile():用于打开一个文件访问串口;GetCommState():获取串口的当前配置,放入DCB中;SetCommState():根据DCB信息配置串口参数;SetCommTimeouts():设置串口读写操作的超时时间;ReadFile():从串口的输入缓冲区读取数据;WriteFi

2013-07-29 17:09:15 1462

转载 串口编程之三:COMSTAT 结构

COMSTAT结构COMSTAT结构包含串口的信息,结构定义如下:typedef struct _COMSTAT { // cst    DWORD fCtsHold : 1;   // Tx waiting for CTS signal    DWORD fDsrHold : 1;   // Tx waiting for DSR signalDWORD f

2013-07-29 17:08:03 10083

转载 串口编程之二:超时COMMTIMEOUTS结构

在WIN32  API编程中,除了DCB结构之外,还需要了解COMMTIMEOUTS结构.这个结构是为了读写串口的超时而设置的. COMMTIMEOUTS结构如下:         typedef   struct   _COMMTIMEOUTS   {       DWORD   ReadIntervalTimeout;                 //任意相邻连个字符之

2013-07-29 17:07:18 1269

转载 串口编程之一: WIN32 API 中串口DCB 结构的介绍

在应用WIN32  API 对串口进行编程时, 必定会使用到DCB 结构. 下面的DCB 结构的一些介绍.首先是DCB 结构.typedef struct _DCB {          DWORD DCBlength;                   DWORD BaudRate;                    DWORD fBinary: 1;     

2013-07-29 16:49:58 1702

转载 串口通讯编程一日通4(串口基本操作)

前几篇大概介绍了串口的相关几个结构,了解后开始进入Windows API的基本操作 1.CreateFile创建打开串口用指定的方式打开指定的串口,注意文件在Windows的概念很广泛,包括:文件、通讯设备、命名管道、邮件、磁盘和控制台。我们前面声明了句柄 /*串口句柄*/ HANDLE    m_hComm;那么接下来可以这样创建:m_

2013-07-29 15:24:10 1328

转载 串口通讯编程一日通3(COMMTIMEOUTS DCB整理)

上一篇看了Overlapped IO模型后,接下来看剩下两个重要结构:  2.COMMTIMEOUTS结构 超时设置COMMTIMEOUTS:COMMTIMEOUTS主要用于串口超时参数设置。COMMTIMEOUTS结构如下:         typedef   struct   _COMMTIMEOUTS   {       DWORD   ReadInter

2013-07-29 15:23:32 1003

转载 串口通讯编程一日通2(Overlapped IO模型)

第一篇初步了解串口的大致运作,接下来我们看基本操作先看串口操作的数据结构:串口操作有几个比较重要的Struct1.Overlapped I/O 异步I/O模型异步I/O和同步I/O不同,同步I/O时,程序被挂起,一直到I/O处理完,程序才能获得控制。异步I/O,调用一个函数告诉OS,进行I/O操作,不等I/O结束就立即返回,继续程序执行,操作系统完成I/O之后,通知

2013-07-29 15:22:44 1146

转载 串口通讯编程一日通1(整合资料)

串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信方便易行,所以应用广泛。本文以VC++为平台进行串口通信编程串口通讯在VC++下实现方式有很多,控件自然是最简单话的方式了,但由于控件只支持对话框程序,有些场合又不需要对话框,所以用Windows API实现是比较好的方式串行通信的操作方式1.同步方式同步方式中,读串口的函数试图在串口的接收缓冲

2013-07-29 15:21:02 1088

转载 如何设置串口通信中的COMMTIMEOUTS结构?

COMMTIMEOUTS:COMMTIMEOUTS主要用于串口超时参数设置。COMMTIMEOUTS结构如下:typedef struct _COMMTIMEOUTS { DWORD ReadIntervalTimeout; DWORD ReadTotalTimeoutMultiplier; DWORD ReadTotalTimeoutConstant; DWORD Wri

2013-07-29 14:59:53 1332

转载 setsockopt()用法(参数详细说明)

int setsockopt(SOCKET s,int level,int optname,const char* optval,int optlen);s(套接字): 指向一个打开的套接口描述字level:(级别): 指定选项代码的类型。SOL_SOCKET: 基本套接口IPPROTO_IP: IPv4套接口IPPROTO_IPV6: IPv6套接

2013-07-29 14:24:32 1144

原创 h文件定义struct,cpp文件实现struct。

h文件定义struct cpp文件实现此struct

2013-07-26 23:20:58 3366

转载 recv function

The recv function receives data from a connected socket or a bound connectionless socket.SyntaxC++int recv( _In_   SOCKET s, _Out_  char *buf, _In_   int len, _In

2013-07-25 15:59:14 1357

转载 用setsockopt()来控制recv()与send()的超时

在send(),recv()过程中有时由于网络状况等原因,收发不能预期进行,而设置收发超时控制:在Linux下需要注意的是时间的控制结构是struct timeval而并不是某一整型数,以下是来自于网上一篇文章中的摘录,它是这样写的:int nNetTimeout=1000;//1秒,//设置发送超时setsockopt(socket,SOL_SOCKET,SO_SNDTIME

2013-07-25 14:39:23 952

转载 合并两个vector

#include     #include     using   namespace   std;   void   print(vector&   v,   const   char*   mark)   {   cout   size_t   len   =   v.size();   for   (size_t   i   =   0;   i  

2013-07-24 11:43:07 902

转载 如何合并两个vector?

#include #include #include using namespace std;int main() {  vector vec1, vec2;  vec1.push_back("aa");  vec1.push_back("bb");  vec1.push_back("cc");  vec2.push_back("dd");  vec2.

2013-07-24 11:18:25 2239

转载 编译器错误 C2894

模板不能声明为有“C”链接此错误可能是由 extern “C”块内部定义的模板导致的。下面的示例生成 C2894:// C2894.cppextern "C" { template class stack {}; // C2894 fail template void f(const T &aT)

2013-07-23 11:28:12 3785

转载 C++ handle classes

C++中,使用handle classes(句柄类)的目的,是为了降低文件之间的编译依存关系。摘自网上的一段话:       需要句柄类的背景: 1)在对安全要求很高的领域,即使核心实现已经封闭在库中不可见,但头文件中变量定义仍可能曝露一些内部信息2)在设计初期、实现部分会经常变动,甚至头文件中变量定义也需要经常变动,因此在重编译的时候头文件也需要编译,有时候导致编

2013-07-22 16:31:39 1241

转载 C++判断是否是IP地址

bool isIPAddress(const char *s){    const char *pChar;    bool rv = true;    int tmp1, tmp2, tmp3, tmp4, i;    while( 1 )    {        i = sscanf(s, "%d.%d.%d.%d", &tmp1, &tmp2, &tmp3

2013-07-22 10:57:42 2500

转载 开始3D编程前需注意的十件事

开始3D编程不是一件容易完成的任务。这里有很多新的东西可以发挥作用,从选择语言到选择合适的3d建模软件。当这10个事情完成时,无论你选择何种语言,使用何种建模软件,你都可以认为自己是这方面的半个专家了。#1:建立自己的图形初始化函数现在有种类繁多的3d引擎和平台,所以这个任务一般交给它们来完成。我还记得以前的事情,你必须使用windows函数来初始化OpenGL,并管理窗口

2013-07-17 14:15:12 1055

转载 CSerialPort串口类

这是一份优秀的类文件,好多的地方值得我们学习,具体在多线程,事件,自定义消息,类的封装方面等等。Remon提供的串口类网址为: http://codeguru.earthweb.com/network/serialport.shtml,由于已经运行十几年了,原文的问答部分列出来这么多年来的问题,经过网友们的总结,补充和修改原来代码后,整理出一份相对比较完美的代码。此外还

2013-07-16 17:57:20 1439

转载 Socket编程中的强制关闭与优雅关闭及相关socket选项

以下描述主要是针对windows平台下的TCP socket而言。首先需要区分一下关闭socket和关闭TCP连接的区别,关闭TCP连接是指TCP协议层的东西,就是两个TCP端之间交换了一些协议包(FIN,RST等),具体的交换过程可以看TCP协议,这里不详细描述了。而关闭socket是指关闭用户应用程序中的socket句柄,释放相关资源。但是当用户关闭socket句柄时会隐含的触发TCP

2013-07-15 16:12:31 1852

转载 服务器中判断客户端socket断开连接的方法

下面来罗列一下判断远端已经断开的方法:法一:当recv()返回值小于等于0时,socket连接断开。但是还需要判断 errno是否等于 EINTR,如果errno == EINTR 则说明recv函数是由于程序接收到信号后返回的,socket连接还是正常的,不应close掉socket连接。 法二:  struct tcp_info info;   in

2013-07-15 15:20:18 1890

转载 设置socket的非阻塞模式

关于socket的阻塞与非阻塞模式以及它们之间的优缺点,这已经没什么可言的;我打个很简单的比方,如果你调用socket send函数时;如果是阻塞模式下:send先比较待发送数据的长度len和套接字s的发送缓冲的长度,如果len大于s的发送缓冲区的长度,该函数返回SOCKET_ERROR;如果len小于或者等于s的发送缓冲区的长度,那么send先检查协议是否正在发送s的发送缓冲中的

2013-07-15 11:44:11 1347

转载 如何更改一个 MFC 编辑控件的背景色

概要若要更改的 MFC 应用程序中编辑控件的背景色,您必须重写包含编辑控件的窗口的 OnCtlColor() 消息处理函数。在新的 OnCtlColor() 函数中,设置的背景颜色,并返回到将用于绘制背景的画笔的句柄。这必须在 OnCtlColor() 函数中接收的 CTLCOLOR_EDIT 和 CTLCOLOR_MSGBOX 消息的响应。它也记录在"类库引用"下 CWn

2013-07-13 11:55:48 1107

转载 Popup menu with nice title

IntroductionI wanted to put a title on top of some popup menus, but I didn't like to use DISABLED|STRING as flags for a menu-item, as this doesn't prevent the mouse-over selection, and doesn't l

2013-07-13 11:05:09 1152

转载 STL map中key为结构体的用法

最近在使用stl中的map容器时,碰到key为结构体的情况,总结如下,以便提醒自己。我的使用情景是,我需要根据不同的比例尺、道路类型这两个参数获取到对应的道路宽度,由于我是使用map解决这个问题的,自然而然的就以比例尺、道路类型这两个参数为key,道路宽度为value,建立的key如下:1 typedef struct tagRoadKey 2 {3     int nTy

2013-07-12 19:11:59 1075

转载 Map以自定义类做为键值

map在STL中的定义 template <class Key, class T, class Compare = less, class Alloc = alloc> 第一个参数Key是关键字类型第二个参数T是值类型第三个参数Compare是比较函数(仿函数)第四个参数是内存配置对象 map内部存储机制实际是以红黑树为基础,红黑

2013-07-12 00:06:32 1038

转载 C++中stl容器map针对结构体的查找

#include #include #include #include using namespace std;typedef struct MAPDATA{char data[128]; //map中数据bool operator{ return a.data }}MAPDATA;int main(){map mp;stru

2013-07-11 23:23:38 2140

原创 C++读写CSV文件

C++读写CSV文件

2013-07-03 11:01:00 5518

转载 vc中对话框使用技巧集合

注:以下代码以一个名为CTest6Dlg的对话框类为例--------------------------------------------------------------------------------1. 在任务栏隐藏对话框       ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);---------

2013-07-03 10:15:26 1794

转载 Reading and Writing CSV Files in MFC

I recently had the need to import and export CSV files in an MFC application. A CSV (Comma-Delimited Values) file is a plain-text file where each row contains one or more fields, separated by comm

2013-07-01 18:12:43 1700

HybridList - A fast N lg (N) sort algorithm for lists

Windows MFC 的虚拟列表示例代码,找来不容易。

2013-01-16

VS2008MFC编程调用MSComm控件简单示例

在Visual Studio 2008下如何玩MSComm ActiveX Control,兄弟,有的玩了。

2012-10-19

C# 调用标准 C++ 生成的 dll

应用C#如何调用标准C++已生成的动态库,牵涉到比较多的方方面面。

2012-08-03

计算机程序设计艺术 卷三

了解程序设计,了解算法,学会程序设计,学会算法,祝大家好运!

2009-05-16

计算机程序设计艺术 卷二

了解程序设计,了解算法,学会程序设计,学会算法,祝大家好运!

2009-05-16

程序设计C、C++、Java、OpenGL、MFC、Windows、SDK驱动开发

程序设计C、C++、Java、OpenGL、MFC、Windows、SDK驱动开发,里面的内容比较丰富,这是种子,下载速度较慢,花了我比较多的时间,如果不想下载,直接想得到的话,可以 E-mail 给我,我的 E-mail: 382087110@qq.com ,学习万岁!

2009-04-14

Symbian OS C++ 手机应用开发(第一卷,中文版).pdf

Symbian OS C++ 手机应用开发(第一卷,中文版),希望对大家有用,共同学习。

2008-11-26

水晶报表控件的示例程序源码

学习:水晶报表控件的示例程序源码,希望对大家有用哦!

2008-11-04

create and use DLL

学习DLL:create and use DLL

2008-11-04

VC编程-----界面的设计

希望大家积极踊跃的上传,广泛交流,提高水平,谢谢!

2008-10-28

MFC编程---界面设计

VC MFC 设计界面,有助于大家的界面设计和VC编程,希望对大家有帮助。

2008-10-28

解决 Can not find the main class. Program will exit. 难题

解决 Can not find the main class. Program will exit. 难题

2008-09-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除