
C++ 的开发心得
文章平均质量分 60
akailee
牛B的人生不需要解释
展开
-
完成端口的部分代码
//完成端口的部分代码//主线程//创建原始完成端口句柄hIOCP=CreateIoCompletionPort(INVALID_HANDLE_VALUE,NULL,0,0);if(NULL==hIOCP){ //错误处理}//创建监听套节字 ListenPort()封装了bind listen等函数SocketListen=Listen原创 2009-04-18 12:11:00 · 534 阅读 · 0 评论 -
UTF-8,GB2312,UNICODE,字符集Windows平台互转类,简单高效
下面贴个写的很简洁高效的类CharacterEncoding.h#pragma once#include #include using namespace std;class CharacterEncoding{public: CharacterEncoding(void); ~CharacterEncoding(void); void unicodeToUTF8(原创 2016-04-15 11:45:59 · 721 阅读 · 0 评论 -
C++ string 跨平台 字符串分割函数
//字符串分割函数 AKAIstd::vector CDoorAccessFd::split(std::string str,std::string pattern) { std::string::size_type pos; std::vector result; str+=pattern;//扩展字符串以方便操作 int size=str.size();原创 2016-04-15 11:41:50 · 885 阅读 · 0 评论 -
Python2.6.6安装配置ICE3.4.2开发环境
先从ZEROC网站上下载ice 3.4.1 for windows,这个版本要求安装dotnet,安装完ice后,要设置一下系统变量 并下载python2.6.6,安装.设置环境变量ICE_HOME=C:\Program Files\ZeroC\Ice-3.4.2ICEPY_HOME=C:\Program Files\ZeroC\Ice-3.4.2PATH+=%ICE_HOME%/原创 2016-04-07 22:04:18 · 1526 阅读 · 0 评论 -
vc在edit控件中动态插入数据滚动显示
思路:给控件设置多行属性,设置垂直滚动条,Auto Vscroll设置为true,放入文本后把插入点设置到末尾pEdit->LineScroll(pEdit->GetLineCount()); 滚动条滚动到最下端int len = pEdit->GetWindowTextLength();pEdit->SetSel(len,-1,true); //定位光标到内转载 2016-04-02 05:09:20 · 732 阅读 · 0 评论 -
Boost的转换函数(一)
Boost的转换函数是对C++中的四种类型转换函数(const_cast,reinterpret_cast,static_cast,dynamic_cast)的一些补充和扩展,在阅读本文前,请先熟悉C++中的四种类型转换函数相关知识。 polymorphic_cast C++提供了dynamic_cast来实现运行时的类型转换,但是如果用来转换指针时,需要记得检查返回原创 2009-04-18 12:22:00 · 441 阅读 · 0 评论 -
STL map常用操作简介
。目录 map简介 map的功能 使用map 在map中插入元素 查找并获取map中的元素 从map中删除元素 2。map简介 map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。 3。map的功能 自动建立Key - value的对应。转载 2009-04-18 12:17:00 · 310 阅读 · 0 评论 -
用完成端口开发大响应规模的Winsock应用程序
用完成端口开发大响应规模的Winsock应用程序 通常要开发网络应用程序并不是一件轻松的事情,不过,实际上只要掌握几个关键的原则也就可以了——创建和连接一个套接字,尝试进行连接,然后收发数据。真正难的是要写出一个可以接纳少则一个,多则数千个连接的网络应用程序。本文将讨论如何通过Winsock2在Windows NT 和 Windows 2000上开发高扩展能力的Winsock应用程序。文章主转载 2009-04-18 12:09:00 · 653 阅读 · 0 评论 -
Boost智能指针——weak_ptr
循环引用: 引用计数是一种便利的内存管理机制,但它有一个很大的缺点,那就是不能管理循环引用的对象。一个简单的例子如下: #include #include #include #include class parent;class children;typedef boost::shared_ptr parent_ptr;typedef boost::shared_ptr childr转载 2009-04-18 12:22:00 · 369 阅读 · 0 评论 -
Boost智能指针——scoped_ptr
boost::scoped_ptr和std::auto_ptr非常类似,是一个简单的智能指针,它能够保证在离开作用域后对象被自动释放。下列代码演示了该指针的基本应用: #include #include #include class implementation{public: ~implementation() { std::cout "destroyin转载 2009-04-18 12:19:00 · 447 阅读 · 0 评论 -
ACE开发游戏服务器笔记一
我的插件式游戏平台已经基本成型了,游戏的服务端使用的是ACE作为网络引擎,在开发中遇到了这样或那样的问题,现在有些空了,准备把它们整理一下写出来,希望对初学者们有些帮助。 今天讲讲怎么开始使用ACE吧。 从哪儿下载我就不说了,现在多得更米一样。 我的是5.3的版本,解开包后,你会发现有N多的文件和目录,其它先不管,我们先看ace这个目录,ACE的主要的文转载 2009-04-18 12:14:00 · 517 阅读 · 0 评论 -
Boost的转换函数(二)
boost::numeric_cast 在c++中,我们经常需要把不同类型的数字互相转换,如将一个数字在long和short之间转换。但由于各数字的精度不同,当一个数字从"大"类型到"小"类型就可能导致转换失败,如下所示: long n1 = 99999999;short n2 = static_castshort>(n1); 对于如上转换,n2得到的是一个负数,显然这个原创 2009-04-18 12:23:00 · 472 阅读 · 0 评论 -
粘包的解决
一个网络上来的数据包之后,我们必需将收到的数据包整理成为一个一个的完成的数据包.这里写了一个代码来搞定这个问题的.首先我们需要有一个内存缓冲区.还有我们已经使用了这个缓冲区的大小的标志. void getData(const char* buff,int nSize){char *pCheckBuff=(char*)buff; // 检查的缓冲区int nCountSize=nSiz原创 2009-04-18 12:26:00 · 531 阅读 · 0 评论 -
Boost智能指针——shared_ptr
boost::scoped_ptr虽然简单易用,但它不能共享所有权的特性却大大限制了其使用范围,而boost::shared_ptr可以解决这一局限。顾名思义,boost::shared_ptr是可以共享所有权的智能指针,首先让我们通过一个例子看看它的基本用法: #include #include #include class implementation{public: ~imp转载 2009-04-18 12:20:00 · 392 阅读 · 0 评论 -
不同系统环境下如何启动node-webkit APP
本节将介绍node-webkit 应用分别在Windows、Linux和Mac OS环境下如何启动。node-webkit可以通过两种方式启动:1)通过文件夹,将启动路径指向文件夹2)通过.nw文件(即ZIP压缩包),将启动路径指向.nw文件无论哪种方式启动,应用都需要包含package.json文件,当node-webkit启动时这个文件将会被解析。如果这个文件丢转载 2017-11-15 10:51:35 · 560 阅读 · 0 评论