VC:Windows API/MFC
文章平均质量分 81
zrjdds
在校学生
展开
-
vc同一个解决方案不同项目间通信的方式
对于比较大的工程,往往需要在同一个解决方案建立多个项目,或者导入第三方的项目。而这些项目往往以这种方式组织:一个项目的生成结果是主程序exe,其它项目的生成结果是dll,由exe调用dll的函数。 但在开发过程中往往有这样的需求:各个dll需要互相通信,或者exe与dll需要互相通信。这时,在一个项目里定义全局变量,而在其它项目里以extern方式引用该全局变量这种方式是不可行的。因为各个项目有独立的空间。怎么办呢? (1)通过socket实现通信。 (2)通过共享内存原创 2010-08-04 21:42:00 · 2008 阅读 · 0 评论 -
MFC: 多人聊天服务器 服务器端之OICPServer类
<br />/ IOCPServer.h: interface for the CIOCPServer class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_IOCPSERVER_H__1EC64F02_5939_46BF_B121_DEDD88DB2D1B__INCLUDED_)#define AFX_IOCPSERVER_H__1EC64F02_59转载 2010-11-10 16:03:00 · 2091 阅读 · 1 评论 -
完成端口详解
<br />完成端口详解(1) <br /> 通常要开发网络应用程序并不是一件轻松的事情,不过,实际上只要掌握几个关键的原则也就可以了——创建和连接一个套接字,尝试进行连接,然后收发数据。真正难的是要写出一个可以接纳少则一个,多则数千个连接的网络应用程序。本文将讨论如何通过Winsock2在Windows NT 和 Windows 2000上开发高扩展能力的Winsock应用程序。文章主要的焦点在客户机/服务器模型的服务器这一方,当然,其中的许多要点对模型的双方都适用。<br /> API与响应规模转载 2010-11-03 13:52:00 · 822 阅读 · 0 评论 -
Socket I/O模型之完成端口
<br />http://tangfeng.javaeye.com/blog/518148<br /><br />“完成端口”模型是迄今为止最为复杂的一种I/O模型。然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!但不幸的是,该模型只适用于Windows NT和Windows 2000操作系统。因其设计的复杂性,只有在你的应用程序需要同时管理数百乃至上千个套接字的时候,而且希望随着系统内安装的CPU数量的增多,应用程序的性能也可以线性提升,才应考虑采用“完成转载 2010-11-02 10:10:00 · 745 阅读 · 0 评论 -
WinSocket模型的探讨——漫谈
<br />http://blog.csdn.net/dylgsy/archive/2007/01/19/1487400.aspx<br /><br /><br />SOCKET有两种模式——阻塞和非阻塞。<br />如果使用了阻塞,在某个时间点如果出现了网络问题,一边调用recv接收不到数据的时候,那就会导致程序挂在那里!对于这个问题有两种解决的方法:一是保证使用的环境永远不会出现这种情况,二是使用多线程(就算出现了阻塞的情况也就是线程挂了,主线程还是生龙活虎的)。<br />如果使用非阻塞的SOCKET转载 2010-11-01 14:42:00 · 584 阅读 · 0 评论 -
对ADO作轻量级的封装
<br />// EGDatabase.h#pragma once/* 在VC++2005编译.cpp文件中使用using namespace std;后编译提示:“std”: 具有该名称的命名空间不存在是未包含iostream文件导致的!*/#include <iostream> #include "stdio.h"#include <string.h>#include <assert.h>using namespace std;#import "C:原创 2010-09-23 16:45:00 · 721 阅读 · 0 评论 -
C语言中的文本流与二进制流的区别
<br />C语言中的文本流与二进制流的区别 http://blog.sina.com.cn/s/blog_5b2d79e90100h9ph.html<br /> <br />在C中引入了流(stream)的概念。它将数据的输入输出看作是数据的流入和流出,这样不管是磁盘文件或者是物理设备(打印机、显示器、键盘等),都可看作一种流的源和目的,视他们为同一种东西,而不管其具体的物理结构,即对他们的操作,就是数据的流入和流出。这种把数据的输入输出操作对象,抽象化为一种流,而不管它的具体结构的方法很有利于编程,而涉转载 2010-09-21 09:27:00 · 928 阅读 · 0 评论 -
类型转换
using namespace std;// 这个函数是否有内存泄漏 ? 仔细看一下LPCWSTR EGStringToLPCWSTR(std::string orig){ size_t origsize = orig.length() + 1; const size_t newsize = 100; size_t convertedChars = 0; wchar_t *wcstring = (wchar_t *)malloc(sizeof(wchar_t)*(orig.l原创 2010-09-20 20:26:00 · 596 阅读 · 0 评论 -
VC线程池,拿来就用
#ifndef _ThreadPool_H_#define _ThreadPool_H_#pragma warning(disable: 4530)#pragma warning(disable: 4786)#include #include #include #include using namespace std;class ThreadJob //工作基类{public://供线程池调用的虚函数virtual void DoJob(void *pPara) = 0;};class ThreadPool转载 2010-08-19 16:57:00 · 5670 阅读 · 4 评论 -
Windows Socket API
Windows Socket API 使用经验 本文是我在进行MS-Windows、HP-unix网络编程的实践过程中总结出来的一些经验,仅供大家参考。本文所谈到的Socket函数如果没有特别说明,都是指的Windows Socket API。 一、WSAStartup函数 int WSAStartup( WORD wVersionRequested, LPWSADATA lpWSAData ); 使 用Socket的程序在使用Socket之前必须调用WSAStartup函数。该转载 2010-08-17 08:59:00 · 1292 阅读 · 0 评论 -
winsock和winsock2冲突
<br />在初学Windows网络编程时,曾经遇到过两类编译错误(VC6的Build窗口哗哗的显示了102个Errors),都是些类型未定义或者重复定义问题,让我感到很郁闷。这两种错误情况下的第一条错误信息分别为:<br />错误情形1:mswsock.h(69) : error C2065: 'SOCKET' : undeclared identifier<br />错误情形2:winsock2.h(99) : error C2011: 'fd_set' : 'struct' type redefini原创 2010-08-17 14:40:00 · 5386 阅读 · 1 评论 -
MFC: 多人聊天服务器 服务器端之ChatServer(OICPServer类的子类)
// ChatServer1.h: interface for the CChatServer class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_CHATSERVER1_H__F6365C1E_C996_4A39_A4BE_505DA39112AC__INCLUDED_)#define AFX_CHATSERVER1_H__F6365C1E_C996转载 2010-11-10 16:05:00 · 1366 阅读 · 1 评论