自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

MFC原创:三层架构03(人事管理系统)源程序发布

源代码测试说明:1.解压Staff.zip得到两个文件夹staff和data。前者是项目文件,后者是数据库文件2.将data文件夹放到d盘根目录,即使StaffMessage.mdb的访问路径是D:\data\StaffMessage.mdb3.把这个数据库文件添加到你计算机的数据源。控制面板--管理工具--数据源--用户DSN--添加--Microsoft Access Driv...

2013-01-27 15:43:00 167

跨平台的多线程断点续传下载库

基于linux命令行程序axel。支持window(尚有bug待调整)linux, mac,ios和android。ios和android已经调试完毕,功能正常。支持特性:1、跨平台,代码简洁2、多线程下载3、支持断点续传代码托管于github:https://github.com/langresser/libdownload...

2013-01-26 15:57:00 53

内存调试的东西D/dalvikvm( 809 ): GC_CONCURRENT freed

1. verbosegc一般Java虚拟机要求支持verbosegc选项,输出详细的垃圾收集调试信息。dalvik虚拟机很安静的接受verbosegc选项,然后什么都不做。dalvik虚拟机使用自己的一套LOG机制来输出调试信息。如果在Linux下运行adb logcat命令,可以看到如下的输出:D/dalvikvm( 745): GC_CONCURRENTfreed 199K...

2013-01-25 09:36:00 74

Argument list too long的解决方法

原因:文件太多了,导致传递给linux(或者说是cygwin)的参数太长了。解决方法:1、最土的方法,把工程拷贝到硬盘分区根目录,“有可能”可以解决问题。2、大工程子模块化拆分。 a、引入子模块 $(call import-add-path,$(LOCAL_PATH))$(call import-module,platform/third_party/androi...

2013-01-22 22:01:00 427

android bionic缺失pthread_cancel的解决方法

在native code中使用多线程好处多多,但是Android的bionic并没有完全实现标准POSIX线程库的所有API,例如pthread_cancel()。但是google这样做肯定有原因,被cancel的thread不一定已经把自己拥有的资源释放掉,因此很可能带来内存泄露,锁没有释放等问题。这些问题在移动设备上更加突出。首先介绍一个指标的方法,使用signal替代ca...

2013-01-22 18:32:00 98

Mac OS X Lion下找不到GCC

笔者的环境是Mac OS X 10.7.3,安装了XCode 4.3。在Terminal试图使用GCC命令时发现找不到这个命令,在/usr/bin下面也没有gcc这个路径。解决方案:1、打开XCode,进入Preferences --> Downloads2、点击Command Line Tools (180 MB) 这行的 Install 按钮 ...

2013-01-22 09:59:00 59

终有一天软件都会像这样开发

Someday, all software will be built this way.原文链接:http://alblue.bandlem.com/2011/02/someday.html(笔者注:文章主要介绍Git,Gerrit,Jenkins为代表的版本控制,代码审核,持续集成工具在现代软件开发中的使用,笔者认为这些都是当下最时髦,最先进的开发工具和工程思想,特做简单翻...

2013-01-22 09:59:00 51

mac下安装automake

export build=~/devtools # or wherever you'd like to buildmkdir -p $buildcd $buildcurl -OL http://ftpmirror.gnu.org/autoconf/autoconf-2.68.tar.gztar xzf autoconf-2.68.tar.gzcd autoconf-2.68./con...

2013-01-21 22:41:00 211

MFC原创:三层架构03(人事管理系统)BLL以及总体说明

终于写到这一步了。头和尾基本弄好了,就差弄条线把它们连接起来。今天有个同学问什么是三层架构,我说我也还不怎么理解清楚,只知道个大概:界面设计---系统功能实现代码---数据库操作代码可以分开来分工编写,最后加上接口(其实就是让三个层的数据可以互相赋值给对方)。说是这么简单,但实际操作,一不注意就会感到很乱,一旦真的是分工来做,估计会更乱。今天(11-13)弄了挺久,刚刚实现一个功能,在UI层输入数...

2013-01-21 18:29:00 278

多继承引发的诡异bug (cocos2d-x CCObject)

我有一个Singleton,用于处理下载信息,用到了HttpClient,那么就必须继承自CCObject,然后添加一个对应的函数指针来响应回调。由于同时还需要响应下载模块的信息回调,所以又继承自IDownloadEvent接口。 结果引发了一个非常难查的内存Bug。当回调函数调用后,这个Singleton的所有数据都被篡改了,导致函数内各种崩溃。但是我检查了Singleton的地址...

2013-01-21 00:13:00 53

网络游戏程序中解决加载卡顿的有效方法

对于3d视频游戏来说,游戏引擎的性能是至关重要的。玩家在体验一款游戏时,游戏的流畅度是最基本的要求。与单机游戏不同,网络游戏更需要考虑性能问题,因为无法像单机游戏那样,控制游戏元素的复杂度来达到效率的要求。大量玩家涌入同一片区域,同屏出现大量的游戏角色是无法避免的,因此游戏帧率的大幅下降,系统资源的大量消耗也很难避免,这是网络游戏引擎最难处理的问题之一。这里要讲一下游戏帧率的控制,通常玩家...

2013-01-20 00:03:00 114

MFC原创:三层架构02(人事管理系统)UI-02

可能一开始设计左窗口视图的时候就不大合理了。我以为重新切分窗口来变换左窗口就是比较简单的方式了,但暂时无法实现。主要卡在:切分窗口好像一般都在OnCreateClient进行,而其它类是调用不了这个函数的。写新的函数来切分窗口,又不知道CCreateContext* pContext 这个参数要怎么赋值。赋值后也还不知道能不能实现,因为我使用的是静态切分方式。时间有限,作业也快需要交了。所以就先按...

2013-01-18 11:26:00 190

揭阳门户站合作方案

后话:当时不知道看了哪里的信息,有个公司有个揭阳门户站相关的域名想找合作,我发了下面这份邮件过去。后来有再交流了一些,我还专门去找了当时的邮件,09年发的,当时高三学习压力比较大,就没深入下去了。后面附该公司回复,觉得挺受益的。------------------------------------------------------------------------一:定位我们...

2013-01-17 20:08:00 107

MFC原创:三层架构02(人事管理系统)UI-01

VC++/MFC Window编程原创教程目录(11-08)做完了DAL层,就考虑了要先做BLL层还是UI层的问题,最后还是选择了先做UI层。感觉BLL层是为UI服务的,UI需要什么功能,就由BLL来实现。首先是用笔在纸上画下布局,修修改改感觉可以就开始动手吧。用三层架构的好处,就算把整个界面设计否决了,重新设计相应重新调用BLL层就可以。做界面也是挺麻烦的事,每个窗口、按钮都要和类或...

2013-01-17 19:54:00 265

MFC原创:三层架构01(人事管理系统)DAL

VC++/MFC Window编程原创教程目录C++课程设计来着。但还没学过数据,也还没理解过三层架构,就把这个作业深化点来做了。虽然要做的这个人事管理系统看起来是挺简单的,无非就是处理员工信息。但事情就是那样,只有动手了才知道什么叫做现实。一开始是没想要用三层架构的,我们小组人员能力参差不齐,那就只能从控制台(黑窗口)做起。后来我想做三层架构的时候,发现这是对的。从网上理解到的资料:三层...

2013-01-16 23:10:00 561

MFC原创教程:5.0 Style 窗口风格

VC++/MFC Window编程原创教程目录1:窗口创建之前改变外观修改大小、标题,代码添加在: BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs){if( !CFrameWndEx::PreCreateWind...

2013-01-13 15:39:00 231

MFC原创教程:4.0 Prop:属性表单

VC++/MFC Window编程原创教程目录1:设置一个属性表单添加三个Dialog--IDD_PROPPAGE_LARGE资源,修改ID为:IDD_PROP1、2、3;添加如下控件:右键点击IDD_PROP1、2、3资源视图--添加类(类名CProp1、2、3,基类:CPropertyPage属性页类);添加新类CPropSheet,基类为:CPropertyShe...

2013-01-13 15:32:00 223

Mac下显示隐藏文件

在Terminal中复制或输入以下命令(区分大小写):defaults write com.apple.Finder AppleShowAllFiles YES然后敲回车然后重启Finder,方法是按住Option键,单击Dock上的Finder图标不放,大概2秒后将在Finder图标上出现一个菜单,如下图:...

2013-01-13 02:00:00 40

提高mac app store的下载速度

非常简单,只要将网络设置中的dns的ip替换为http://dns.v2ex.com/这个网址中显示的ip就可以大大提高app store的下载速度了。

2013-01-13 01:00:00 79

你的代码值多少钱

老板雇佣程序员来写代码,程序员的薪水是成本,产生的有效代码是产品。或者说老板从程序员那里买代码。程序员每写一行代码究竟能赚多少钱?不妨来推导一下。我们规定程序员书写、重构、改bug产生的变化行数都算做生产行(Line),把所有生产行分为三个等级:框架(structure)、功能(feature)、逻辑(logic);将程序员在单位时间内写的三类生产行分别设为Ls、Lf、Ll;每种生产行...

2013-01-12 23:05:00 89

代码的脾气

在别人的一个博客里看到的,太生动了。代码,尤其是开源的东西看多了,越发感觉到所谓编程语言,真的是一门语言,代码的脾气也体现了程序员的性格。代码是有脾气的,我以为。有的代码蛮横,不把你自己的程序大卸八块是容不下它的;有的代码随和,很容易就集成到自己的程序中了。有的代码罗嗦,和它打交道要不断的互相传递很多信息;有的代码收敛,暴露给你的不多,但都是精华。有的代码狡猾,自以为聪明的帮你接管了很多工...

2013-01-12 22:52:00 59

基于cocos2d-x的游戏客户端优化

(未完成) cocos2d-x并不是一个适合网游客户端(mmo)的游戏引擎,越是大型游戏,这个小引擎就越无法驾驭(虽然它非常受欢迎)。 之前我在原来的公司使用的是自主研发的C3引擎,已经对外开放(尚未开源),后面如果我有提到c3引擎,那么指的就是这个2.5d游戏引擎。 我想起我上个月刚离职的时候,c3的首席研究员(应该也是引擎圈内的一个大牛)对我说cocos2d-x没有什么技术...

2013-01-12 21:24:00 46

游戏资源打包

游戏资源打包几乎是一个网络游戏客户端必备的功能。页游和微端根据实际需求可能不打包资源或者使用小包。资源打包有这么几个好处:1、加快客户端安装时间。拷贝3000个1mb文件所消耗的时间要远大于拷贝一个3g的文件所消耗的时间2、客户端更加整洁,也可以“稍微”避免游戏资源被他人使用。3、ios和android上面可以避免文件名大小写不一致造成的文件读取失败。或者说包内可以做到全平台大小写...

2013-01-12 20:07:00 290

3D API中,字体绘制的Batch优化

在3D引擎中绘制字符是很恶心的事情。一个个绘制吧又太慢。组成一个大mesh吧。又太耗引擎的人品。而且还是得lock/unlock vb。才绘制了一百多个字。 fps从600掉到80多。经过跟别人的讨论。pos之类的数据用shader constant来传递会效率高一些。于是做了这样个处理。1. 做72个1x1大小的Quad。 (其实可以用一个,DrawInstance就好了)。2. 将纹理相同的c...

2013-01-12 19:45:00 55

游戏引擎多线程

前言 最近一直在做项目优化,可是由于项目引擎历史原因,不能去砍掉某些功能而去优化项目,项目开发到这种程度,只能在这个基础上去提升整个引擎的效率,常规的CPU和GPU上的优化(美术资源上的缩减,CPU上耗费地方和GPU耗费地方的优化等)基本上都做了。当然每个人都希望自己的游戏跑的越快越好,现在大部分机器都已经至少是双核的,如果能发挥多核优势,游戏的速度会大幅提升。 这里只是谈游戏引...

2013-01-12 19:40:00 74

动态加载资源

如今很多游戏engine宣称自己支持动态加载地图,也就是说可以作到跨地图时的零读取时间。听起来很高深的技术,实际不难实现,当然我们在大话西游和梦幻西游中早已经实现了。最近我正在考虑更加通用的解决方案。先说说基本的思路。也就是我们需要把地图数据切割成小块,让每一块的数据读取解析量并不太大。然后,就可以根据玩家所在坐标读取最小数据量的数据。当玩家移动的时候,利用一些机器闲置时间去读周围...

2013-01-12 19:30:00 64

基于垃圾回收的资源管理

基于垃圾回收的资源管理游戏中有大量的资源数据,这部分数据通常数以百兆,甚至上G。如何在运行时管理好这些数据,也是游戏软件相对其他许多软件的一大难题。管理这些资源分为加载和Cache两个方面。对于资源数量比较少的游戏,我们可以采用只加载不释放的方式,即使资源总量大于物理内存数,OS 在虚拟内存的管理方面也自然有它的优势。至于加载的时机,为了追求用户玩的时候的流畅体验,我们可以...

2013-01-12 19:29:00 72

资源内存管理

网络游戏的 client 开发中,很重要的一块就是资源管理。游戏引擎的好坏在此高下立现。这方面我做过许多研究和一些尝试。近年写的 blog 中,已有两篇关于这个话题的:基于垃圾回收的资源管理、动态加载资源。最近在重构引擎,再次考虑这一个模块的设计时,又有了一些不算新的想法。今天写了一天程序,一半时间在考虑接口的设计,头文件改了又改。最终决定把想到的东西在这里写出来,算是对自己思考过...

2013-01-12 19:28:00 79

MFC原创教程:3.0 Menu

依然是创建MFC单文档应用程序。添加一个菜单选项:右键属性,修改ID为IDM_TEST。//若无法修改,把属性--Popup修改为False即可。点击--项目--类向导,分别在类名CMainFrame、CMenuApp、CMenuDoc、CMenuView,找到IDM_TEST,选择COMMAND消息--添加处理函数。void CMainFrame::OnTest(){...

2013-01-11 11:25:00 277

MFC原创教程:2.0 Text

创建Text MFC应用程序(单文档);1:首先是创建系统插字符。添加WM_CREATE消息。添加代码如下:int CTextView::OnCreate(LPCREATESTRUCT lpCreateStruct){if (CView::OnCreate(lpCreateStruct) == -1)return -1;// TODO: 在此添加您专用的创建代码CClien...

2013-01-11 11:15:00 122

MFC原创教程:1.0 Draw

使用软件 visual studio 2005要在程序中划线,需要知道鼠标左键按下时的和松开时鼠标的起始坐标。1.创建单文档MFC应用程序。2.先以增加一个BUTTON按钮控件为例,说明下添加消息响应的过程。类视图--右键点击CMainFrame--属性右侧可以看到:点击--消息--找到 WM_LBUTTONDOWN--添加。添加代码:void CMainFram...

2013-01-10 10:50:00 192

MFC原创教程:从不会开始(对话框2)

三:使用控件进行界面布局添加控件--排版控件这些都和VB都差不多。主要是为了访问控件,还需要为控件命名。使控件窗口关联到对应到窗口类上,这称为控件到子类化。依然上通过类向导来关联。选择 控件,ctrl+w(或右键点击控件--建立类向导)--MemberVariables--选择要控制到控件ID--Add Variables--输入变量名称--Category--变量类型选为Co...

2013-01-10 10:40:00 165

MFC原创教程:从不会开始(对话框1)

(后话:第一次接触MFC可能感觉乱七八糟,明明感觉就应该只是和VB一样。后来才知道它们最大的区别就是MFC是SDK,C++是面向对象编程。刚开始学的时候,都是在看原理什么的,很难理解。很多人也说要从知其所以然开始,但我个人还是认为,先知道怎么搞简单的吧,认识是在实践中长出来的。第一篇:使用V6.0编译器,我现在讨厌死V6.0了,使用VS2010多方便,但以前的高手可能会说,V6.0轻巧,随...

2013-01-09 14:51:00 249

Fast C++ Delegate: Boost.Function 'drop-in' replacement and multicast

注意,使用最新的boost需要进行修改:Just replaceboost::ct_ifwithboost::mpl::if_c(and#include <boost/mpl/if.hpp>) in Jae's Fast Delegate code.IntroductionThere have been several C++ delegates which decla...

2013-01-09 14:34:00 200

c++高效委托的实现(fast delegate---简单、高效、跨平台)

概要很遗憾, C++ 标准中没能提供面向对象的函数指针. 面向对象的函数指针也被称为闭包(closures) 或委托(delegates), 在类似的语言中已经体现出了它的价值. 在 Delphi(Object Pascal) 中, 他们是 VCL (Borland's Visual Component Library, 宝蓝可视化组件) 的基础. 最近的 C# 让委托的概念更为流行,...

2013-01-09 09:44:00 86

原创文章导航

本教程是我从0.1(大一学期末)认识开始写的,可以算是我学习的历程,未来能学到什么程度呢,本博客见证。本笔记从MFC开始,后面慢慢涉及到VC++各种知识以及使用Windows开发编程的相关技术。以C++为主稍微懂点编程后,学习C#并用C#开发一些软件。比较感兴趣地同时学习了一些游戏引擎,为三维互动开发做点积累。比较稳重地学点英语,因为JAVA老师是个外教,便根据全英环境看JAVA教程,并写下英...

2013-01-07 10:14:00 158

我的站长之旅

写于09年,当时参加Admin5的征文比赛。虽然只是优秀奖,但也值168元,但很遗憾是瓶健保食品。。。。---------------------------------------三年前,满怀信心的我悄悄地踏上了“站长之旅”。我是打从心底佩服那些优秀的站长的。凭那小小的窗口,就能表现那么多东西,还能收获那么多东西……首先,我得成为一名站长。通过上网搜索大概知道建站最基本最简单的途...

2013-01-05 22:12:00 93

我的成长我的域名见证

这一篇是参与当时的站长征文比赛的,没有得奖。是关于那个时间段经过我手的域名,以及一点历程,好像是在高一写的。那个时候精神好啊,不怕任何挫折,一颗天真的心不断向前…后话:知道为什么我的ID是wowkk了吧?因为习惯了……--------------------------------------------------------------------------清晰地记得我的第一...

2013-01-05 22:06:00 338

真正快速的std::vector遍历方法

看到篇文章,内容很基础,但是反应的问题是值得思考的。遍历vector的标准方法是什么?之前按照书中的理论,认为stl标准的迭代器或者stl的for_each算法应该是最快的。但是如果不经过实际程序的检验,那么理论永远是理论。实践表明operator[]的访问速度是最快的(至少不比迭代器更慢)。之前我洁癖性的把所有使用operator[]进行vector遍历的地方都改成迭代器,认为这样更高效,...

2013-01-05 12:35:00 242

简单处理海量数据:STL的hasp_map使用+堆排序

一:简介我觉得数据结构与算法的应用最重要地就是考虑如何更效率地处理数据,而其中很重要的一方面,就是处理海量数据。本次课程设计的假设背景:今天百度通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节,假设目前有一千万个记录,即1000万次查询(这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个。一个查询串的重复度越...

2013-01-05 10:39:00 267

空空如也

空空如也

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

TA关注的人

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