- 博客(7369)
- 收藏
- 关注
原创 RemObject解决自动生成代码的想法.
用过DELPHI写过多层框架的,可能能RemObject比较熟悉. RemObjects Service Builder 自动生成代码的同时,也给我们带来困扰. 每个类都要定义在intf文件里, 接口只有一个, 这些显然对我们开发系统来讲, 支持的不够, 我想使用多个接口,也不想没完没了的定义结构. 前一段时间写了一个自动生成元数据的小工
2008-06-10 12:52:00
2575
13
原创 远程调用技术代码追踪(webservice)
最近阅读了SocketConn的源码和WebService 的源码,把追踪的过程写了下来,方便大家学习。毕竟这需要精力,时间和毅力。感谢煮茶待英雄博志区和三层数据库讨论区兄弟们的支持,特别是julian兄弟,不是他,我可能没耐心继续下去。如果有时间,大家可以继续完善。从socket和Websevice的底层实现细节,我们发现BORLAND的工程师们的构思和实现的过程。我觉得这对我们的学习应该
2008-06-10 12:52:00
3103
2
原创 远程调用技术代码追踪(Remobjects第三方控件)
远程调用技术内幕在前面我已经分析了socket和webservice的代码追踪。现在总结一下:三层架构的运作模型:1. BizSnap与.NET Remoting 的Server端运作模式 当Client 将Request 送达Server端后,会经过一个Message Dispatcher机制,这个机制大多是几个重要的组件合作完成,主要在于解出Request中对于所要求对象的描述,以
2008-06-10 12:52:00
2770
1
原创 远程调用技术代码追踪(socket)
远程调用技术内幕聊聊远程调用的相应技术。微软的模型是rpc, DCOM的封包就是OleVariant型的。经常听到有人说OleVariant的效率不高,其实MIDAS就是采用这种封包的。有人问方法的调用,秘密都在IAppServer这个接口里。 客户端要想调用服务器端的方法是需要代理DLL,和存根DLL的。具体的可以参考COM原理。进程内的就不说了,因为同一个地址空间,它可以通过指针去访问
2008-06-10 12:52:00
2677
原创 Overlapped模型深入分析(原理篇)
Overlapped I/O模型深入分析简述: Overlapped I/O也称Asynchronous I/O,异步I/O模型。异步I/O和同步I/O不同,同步I/O时,程序被挂起,一直到I/O处理完,程序才能获得控制。异步I/O,调用一个函数告诉OS,进行I/O操作,不等I/O结束就立即返回,继续程序执行,操作系统完成I/O之后,通知消息给你。Overlapped I/O只是
2008-06-10 12:52:00
2456
1
原创 传奇源码分析-客户端(全局变量与总体执行流程)
客户端:传奇的客户端源代码有两个工程,WindHorn和Mir2Ex。先剖析一下WindHorn工程。1.CWHApp、CWHWindow和CWHDXGraphicWindow。Window程序窗口的创建。 CWHApp派生CWHWindow,CWHWindow又派生CWHDXGraphicWindow。CWHWindow类 中完成窗口的注册和创建。C
2008-06-10 12:51:00
3202
1
原创 传奇源码分析-客户端(WindHorn简述和传奇文件格式分析)
DirectX类库分析(WindHorn): 1. RegHandler.cpp 注册表访问(读写)。2. CWHApp派生CWHWindow,CWHWindow完成窗口的注册和创建。CWHWindow派生出CWHDXGraphicWindow,CWHDXGraphicWindow调用CWHWindow完成创建窗口功能,然后再调用CreateDXG()来初始化Direct
2008-06-10 12:51:00
2551
原创 传奇源码分析-序言
简述: 最近对高性能的服务器比较感兴趣,读过了DELPHI的Socker源码WebService及RemObject之后,高性能的服务器感兴趣。你可能需要的以下知识才能更好的读懂一个商业源码:1).SOCKET的I/O模型熟悉掌握。2).面向对象技术的熟悉掌握。3).Socket的API掌握。4).多线程技术等。5).一门熟悉的开发工具掌握,和多种语言的源码阅读能力。 我下的源码 L
2008-06-10 12:51:00
3284
2
原创 水滴石穿C语言之可变参数问题
作者: 楚云风 C语言中有一种长度不确定的参数,形如:"…",它主要用在参数个数不确定的函数中,我们最容易想到的例子是printf函数。 原型:int printf( const char *format [, argument]... );使用例:printf("Enjoy yourself
2008-06-10 12:51:00
1632
原创 高性能网站性能优化
从LiveJournal后台发展看大规模网站性能优化方法于敦德 2006-3-16一、LiveJournal发展历程LiveJournal是99年始于校园中的项目,几个人出于爱好做了这样一个应用,以实现以下功能: 博客,论坛 社会性网络,找到朋友 聚合,把朋友的文章聚合在一起 LiveJournal采用了大量的开源软件,甚至它本身也是一个开源软件。在上线后,LiveJou
2008-06-10 12:51:00
1749
原创 传奇源码分析-服务器端(LoginSvr服务器分析)
LoginSvr服务器g_gcSock Local 5500端口1.首先从LoginSvr.cpp WinMain分析: 1) CheckAvailableIOCP : 检查是不是NT,2000的系统(IOCP) 2) InitInstance: 初始化界面,加载WSAStartup GetDBManager()->Init( InsertLogMsg, "M
2008-06-10 12:50:00
2895
原创 传奇源码分析-服务器端(LoginGate服务器处理)
LoginGate服务器服务器端: 1.首先从LoginGate.cpp WinMain分析: 1) CheckAvailableIOCP : 检查是不是NT,2000的系统(IOCP) 2) InitInstance: 初始化界面,加载WSAStartup3) MainWndProc窗口回调函数.2.MainWndProc.CPP中分析回调函数MainWndProcsw
2008-06-10 12:50:00
2514
1
原创 传奇源码分析-客户端(游戏逻辑处理源分析一)
登录处理事件:0.WinMain主函数调用g_xLoginProc.Load();加载图片等初始化,设置g_bProcState 的状态。1.CLoginProcess::OnKeyDown-> m_xLogin.OnKeyDown->g_xClientSocket.OnLogin;WSAAsyncSelect模型ID_SOCKCLIENT_EVENT_MSG,因此,(登录,角色选择,游戏
2008-06-10 12:50:00
2449
原创 传奇源码分析-客户端(传奇2和3 文件格式分析比较)
贴这个贴子,希望大家少走弯路。网上下载的那个版本应该是从传奇2改的,传奇3的格式。分析一下源码吧,g_xLoginProc.Load(); 之后就加载m_Image.NewLoad(IMAGE_INTERFACE_1, TRUE, TRUE); 继续读Wix文件, ReadFile(hWixFile, &m_stNewWixImgaeInfo, sizeof(N
2008-06-10 12:50:00
3219
2
原创 传奇源码分析-客户端(传奇2文件格式分析)
传奇文件类型格式探讨(一):Wix文件:索引文件,根据索引查找到相应数据地址(数据文件)。// WIX 文件头格式 typedef struct tagWIXFILEIMAGEINFO{ CHAR szTmp[40]; // 库文件标题 WEMADE Entertainment inc. WIL文件头 INT nIndexCount; // 图片数
2008-06-10 12:50:00
2613
原创 传奇源码分析-服务器端(SelGate服务器分析)
SelGate服务器注:客户端从LoginSvr服务器得到SelGate服务器IP之后,连接SelGate服务器,进行角色创建,删除,选择操作,然后发送数据到DBSrv服务器。g_ssock Local 7100客户端登陆端口g_csock Remote 5100发送到DBSrv服务器上的套接字 1.首先从SelGate.cpp WinMain分析: 1) CheckAv
2008-06-10 12:49:00
1951
1
原创 传奇源码分析-客户端(游戏逻辑处理源分析五 服务器端响应)
游戏服务器执行流程:(玩家走动) GameSrv服务器ProcessUserHuman线程处理玩家消息:遍历UserInfoList列表,依次调用每个UserInfo的Operate来处理命令队列中的所有操作; pUserInfo->Operate()调用m_pxPlayerObject->Operate()调用。判断玩家if (!m_fIsDead),如果已死,则发送_MSG_FAI
2008-06-10 12:49:00
1966
原创 传奇源码分析-客户端(游戏逻辑处理源分析四)
现在假设玩家开始操作游戏:传奇的客户端源代码工程WindHorn一、CWHApp派生CWHWindow和CWHDXGraphicWindow。二、CWHDefProcess派生出CloginProcess、CcharacterProcess、CgameProcess客户端WinMain调用CWHDXGraphicWindow g_xMainWnd;创建一个窗口。客户端CWHDXGraphi
2008-06-10 12:49:00
2036
原创 传奇源码分析-客户端(游戏逻辑处理源分析三)
6. 接收怪物,商人,其它玩家的消息:ProcessUserHuman:(其它玩家—服务器处理)CPlayerObject->SearchViewRange();CPlayerObject->Operate();遍历UserInfoList列表,依次调用每个UserInfo的Operate来处理命令队列中的所有操作; pUserInfo->Operate()调用m_pxPlayerObje
2008-06-10 12:49:00
2896
原创 传奇源码分析-客户端(游戏逻辑处理源分析二)
5.接受登录成功后,接收GameSrv服务器发送的消息:接收GameGate发送的消息:CClientSocket::OnSocketMessage的FD_READ事件中,PacketQ.PushQ((BYTE*)pszPacket);把接收到的消息,压入PacketQ队列中。处理PacketQ队列数据是由CGameProcess::Load()时调用OnTimer在CGameProces
2008-06-10 12:49:00
2305
2
原创 QQ头像变灰算法[图]
1.查看QQ不在线图标,目测由白灰黑,三种颜色.2.打开画图工具,查看了灰色的RGB......惊喜.......原来灰色的RGB 3个参数多是相同的.3.所以推断每个不在线头像的像素是在线头像R G B 的平均值. 网友"string"给了个比较专业的公式(R*0.299 + G*0.587 + B*0.114 )4.操作:取得一个像数,然后取得R ,G ,B,计算平均,然后将平均值设置
2008-06-10 12:48:00
2155
3
原创 字符集之间转换(UTF-8,UNICODE,Gb2312)
字符集之间转换(UTF-8,UNICODE,Gb2312)特搜集了UTF-8,UNICODE,Gb2312他们3个之间的相互转换.UTF-8: 3字节一个字符UNICODE: 2字节一个字符GB2312: 1字节一个字符例子:“你”字的UTF-8编码: E4 BD A0 11100100 10111101 10100000“你”的Unicode编码: 4F 60
2008-06-10 12:48:00
1892
2
原创 实现QQ主界面效果[图]
实现QQ主界面的滚动效果[图]1. GC实现QQ的主界面截图2.实现方法最主要的计算各个组和头像的位置信息,有了位置信息,画图就很方便了.(画图请参考本专栏其他文章)2.1 一些概念: 项 : 组和头像,如果组合并,那么这个组只有组1项,如果展开那么 组+ 组成员的个数m_scrollIndex : 滚动了几个项(滚动时计算)m_scrollY : 实际滚动的像数(通过m_scrollInde
2008-06-10 12:48:00
1160
原创 GDI画图的几种方式(小游戏不闪烁)
1 画图方式: 1.1 使用临时DC,先将要画的界面全部画到临时DC,到最后才全部帖回原DC,这样就不会出现闪烁. 1.2 创建的GDI对象要删除,不然会造成泄露. 将新对象选进DC,一般要保留旧的对象,然后用完新对象,把老对象选回DC. 一般Create*** 函数多要记得Delete*** GetDC Rel
2008-06-10 12:48:00
1259
原创 RichEdit中插入GIF动画(使用QQ的ImageOle.dll)
最近做聊天记录,需要显示GIF动画.看了很多文章,基本多是用QQ的ImageOle.dll或者Gif89a.dll来实现.当然还有其他方法,包括Static控件中使用CPictureEx来实现GIF. ImageOle.dll使用了GdiPlus.dll,制作安装包时最好把这个dll也带上( XP系统自带)(本文的代码来自其他网友)参考a: http://www.codepro
2008-06-10 12:48:00
1449
原创 进程调试--数组溢出,影响其他变量
一直做的棋牌系统,调试是个问题,因为要启动的是另一个进程.所以一直多是以输出文件的方式来进行的.确实有些BUG输出文件的方式并不能解决和找到问题. 我先来描述一下碰到的问题: 其中一个int m_nSize变量一般只有两个值(0或者1),在运行过程过突然变成-1,所以造成图片数组导入异常.问题的关键是为什么变量会变?查找了所有的m_nSize调用的地方,并且是N遍
2008-06-10 12:47:00
794
原创 窗口淡入淡出效果的实现
1. 简介函数: SetLayeredWindowAttributes Header Declared in Winuser.h, include Windows.h Import library User32.lib
2008-06-10 12:47:00
888
原创 DLL(Dynamic Link Libraries)专题[转帖]
原帖地址:http://www.microsoft.com/china/community/program/originalarticles/techdoc/dll.mspxDLL(Dynamic Link Libraries)专题目录 引言 调用方式 MFC中的DLL DLL入口函数 关于约定 关于DLL的函数 模块定义文件(.DEF)
2008-06-10 12:47:00
795
原创 如何调试MFC中的内存泄漏[转帖]
首先,应该是MFC报告我们发现内存泄漏。注意:要多运行几次,以确定输出的内容不变,特别是{}之间的数值,不能变,否则下面的方法就不好用了。 我们来看看:F:/CodeSample/Test/TestPipe/LeakTest/MainFrm.cpp(54) : {86} normal block at 0x00422E80, 10 bytes long. Data:
2008-06-10 12:47:00
776
原创 图片镂空算法集合[图]
在开发界面及棋牌游戏过程中,需要很多镂空的图片,而且图片形式一般比较固定.所以封装了几种常见的镂空方法.1. 用于没有掩码图,只有指定透明色,不进行伸缩void DrawTransBitmap( HDC hdcDest, // 目标DC int nXOriginDest, /
2008-06-10 12:47:00
954
原创 游戏元素设计与当代艺术变迁
商务时间 5月26日论当代艺术收藏到底是“蛋糕”还是“泡沫”当代艺术收藏家、投资家,选择古玩还是当代艺术? 申明: 本人非专业的游戏策划,也不是专业的市场企划。只是有一颗心,用心去做事,做一件不同感受的事情,只是我所追求的。审视一个事务的本质的同时,衍生到其它领域,这也许就是我理解的商机。本帖内容仅代表个人观点,如有雷同尽情谅解。以下目录结构内容,会在近期写在完成,尽情关注,谢谢。 目录1.
2008-06-10 12:46:00
815
原创 Python(私有变量)类中的特殊方法
原帖地址:http://www.devfront.com:8080/?q=node/199Python学习备忘录Wed, 2006-10-11 08:14 — Marchday类中的特殊方法一般说来,特殊的方法都被用来模仿某个行为。例如,如果你想要为你的类使用x[key]这样的索引操作(就像列表和元组一样),那么你只需要实现__getitem__()方法就可以了。想一下,Python就是对li
2008-06-10 12:46:00
1293
原创 《魔兽世界》任务系统体验
开发网游也有一段时间了,大大小小的网络游戏倒是也看了不少,但是真正好好玩过的好象只有《天堂II》而已。有感于自己对于游戏知识的匮乏,一直在寻找一款值得一玩的游戏!正巧我的好朋友向我推荐WOW,想暴雪还从来没让我失望过,它出的东西是要玩一玩的。 我抱着一个慢慢玩,好好体验的心态进入了魔兽世界。我发现心态对于玩游戏也很重要,我总是听人们说大家玩网游图什么?好像就一下几种:等级高,成为超级英雄;拿到好
2008-06-10 12:46:00
959
原创 游戏特性构建-YY篇(1)无冬之夜特性设计整理
原帖地址:CSDN《无冬之夜2》设计师访谈http://gamedev.csdn.net/n/20060925/95284.html总结篇:可配置的个性界面(ro-online,可制造的:便于开展社区活动"界面秀")独有模型(模型的外形可调制,PS)来制造物品(着色、选择生物、属性)可编辑的区域脚本,全局脚本编辑(独立事件和对话)互助完成模式升华(主线任务接取与个人任务发布共享)如:接取的主线
2008-06-10 12:46:00
766
原创 解决移动硬盘符不见的问题
问题的出现: 今天拿到一台服务器,插上光驱,重新装了系统2003,C盘为FAT格式(GHOST恢复),而其他盘为NTFS格式,所以系统会提示是否转NTFS格式(选择了YES,重新启动自动转换格式).当用插入移动硬盘时,发现盘符不见了.问题的解决: 1.查看连接线是否有问题,或者电压不足.拿到本本上一切正常,排除了这个问题. 2.查看驱动是否正常工作.右键我的电脑->管理->
2008-06-10 12:46:00
1263
原创 事务日志回滚机制研究
摘要: 隔离级别的概念企业级的数据库每一秒钟都可能应付成千上万的并发访问,因而带来了并发控制的问题。由数据库理论可知,由于并发访问,在不可预料的时刻可能引发如下几个可以预料的问题: 脏读:包含未提交数据的读取。例如,事务1 更改了某行。事务2 在事务1 提交更改之前读取已更改的行。如果事务1 回滚更改,则事务2 便读取了逻辑上从未存在过的行。 不可重复读取:当某个事务不止一次读取同一
2008-06-10 12:45:00
957
1
原创 网络游戏性能测试一步曲:如何规划游戏产品性能测试(草稿)
v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}Normal07.8 磅02falsefalsefalseMicrosoftInternetExplorer4st1/
2008-06-10 12:45:00
1060
原创 网络游戏性能测试五步曲(Link_近期持续更新)
Normal07.8 磅02falsefalsefalseMicrosoftInternetExplorer4/* Style Definitions */table.MsoNormalTable{mso-style-name:普通表格;mso-tstyle-rowband-size:0;mso-tstyle-colband-size:0;mso-style-noshow:yes;mso-s
2008-06-10 12:45:00
907
原创 【摘抄】论创业者心态15问
面是那些应该解答的问题: 1) 你的眼光是什么? * 你的远见是什么? * 你要解决什么问题?对象是谁? * 你将来想要成为什么样的人? 2) 你的市场机会是什么?市场有多大? * 您目标的市场有多大?发展有多快? * 这个市场有多成熟,或多不成熟? * 你是否有资本成为这个市场前两三位? 3) 介
2008-06-10 12:45:00
935
1
原创 技术创新前瞻-特征码的音乐应用
昨日,有幸与大学好友重逢,在与其闲聊当中发现电信密谋的新业务,准备与Apple Iphone一较高低。此业务来缘于对特征码的应用,对特定事务特征进行搜索,一直以来是搜索工具的核心结构。但过多的文字搜搜已渐渐不能满足我们的生活需求,电信在未来2年密谋发布一款采用语音识别的音乐搜索系统。客户只需要通过麦克风,手机等音频获取工具,即可轻松搜索到自己想要的歌曲。这将是一个崭新的时代,我们一起设想这样的
2008-06-10 12:45:00
910
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人