vc调用外部exe附加窗口方式 HWND hWnd = ::FindWindow(NULL, _T("exe"));if (hWnd != NULL){m_wndExe.Attach(hWnd);m_wndExe.ShowWindow(FALSE);m_wndExe.SetParent(this);m_wndExe.MoveWindow(111,82,802,602);m_wndExe.ShowWin
Flash安全设置工具 rem FlashFlashPlayerTrust.cmdc:cd %windir%/system32/Macromed/Flashmd FlashPlayerTrustcd FlashPlayerTrustecho c: >myTrustFiles.cfgecho d: >>myTrustFiles.cfgech
.NET4无法安装问题解决方案 1 提到了解决办法:在运行 cmd 命令,再输入 fsutil resource setautoreset true c:\ 如果windows7安装在其他盘则改为相应的盘符。(装在D盘的写D:\)于是我ok了~~2 然后关闭 Internet 时间自动同步3 就可以安装.NET4和Windows' UPdate了
MS SQL 数据插入access insert into OpenRowSet('microsoft.jet.oledb.4.0',';database=D:\xxdb\Content_WL21.aoo','select * from ResContent') select * from ResContent
win7或win8语言包安装 win7或者win8 64位里面有删除语言包的lpremove任务需要禁止命令system("schtasks /change /disable /tn \\Microsoft\\Windows\\MUI\\LPRemove");禁止任务// 检查操作系统的版本号 OSVERSIONINFO _osv; ZeroMemory(&_osv, sizeof(OSVERSIONINFO
开发cocos2d-x 游戏 实战篇(8)--终结篇 哈哈虽然这个游戏完结了但是不代表我的博客更新就此,结束。我以后还会不断更新以项目的方式给大家讲解cocos2d-x 的用法。对于这个游戏我来总结一下。这些天群里问我的朋友不少,我发现一个问题。或者说 咱们的思路可能不一样。很多人问我是怎么想的哪些功能是怎么实现的。其实BOY也是人也不是神。很多东西我一开始也没想到,不过大的框架的地方一定要想到。例如拿武器系统来说 我刚开始想的时候 想这个武器系统能
开发cocos2d-x 游戏 实战篇(7)之关卡系统的基本设计 下面我简单的说了一下我的设计关卡系统的一个简单的思路。我感觉做这类的塔防游戏其实就是每一个关卡就是一个生存模式,当你过了以后就可以进入到下一关,当你没过的时候会让你一直停留在次关 一直打到你过为止。既然是这样的一个思路那么没提升一个关卡怪物的属性值和怪物的数量值总是需要提升,来增加游戏的难度。让玩家更好的玩下去。我的总体思路就是这样。 我画个简单的流程图 大家看到这个图是不是发现其
开发cocos2d-x 游戏 实战篇(6)之 绚丽的魔法特效 呵呵看起来还是很绚丽的吧 要问这个代码是怎么实现 明白人一看大概都能了解 首先我修改了我武器系统里面的部分代码 就是为了加入上面那些绚丽的特效void WeaponSprite::initIdleMagicSpool(cocos2d::CCLayer* pLayer){ int cout=3;// 假设 魔法矩阵的
开发cocos2d-x 游戏 实战篇(5)之魔法阵和自定义弹框 这一章包含的内容有 添加魔法阵的CD 动画 其实就是游戏中的技能的CD 在一个重要的一点就是自定义弹出框。还有一点就是给主城添加气血和魔法。在这里给大家说下我添加的这些东西 有些具体的功能还没实现 例如魔法阵 这一块我感觉是比较重要的一块,我准备放到下一章来专门讲解 魔法阵的实现,在游戏中如何使用魔法消灭怪物,呵呵是不是很期待啊。还有一个就是在弹出框中我 我重新开始游戏这一点我还没实现,别看这么一
开发cocos2d-x 游戏 实战篇(4)之 怪物系统 其中关于怪物类 我这里要仔细讲解一下 在一个游戏中我们的怪物 常常是这样的 有攻击动画 有走路动画 有死亡动画 目前我没考虑收到攻击的动画 考虑太多只会增加开始游戏的难度 我们先把最基本的 实现 慢慢来扩展 我的怪物的图片是从66rpg 上下载的 然后用TexturePacker 把众多的动画 所需要的 图片处理成一张图片 减少加载图片的次数 通过这个工具以后会生成一
开发cocos2d-x 游戏 实战篇(3)之武器系统(散花弹) 这一章 写的东西比较多 不过分模块理解就好 主要模块有 武器 弹药 武器+弹药组合成 武器系统 ,当武器里面没有子弹的时候自动上膛 给加子弹,子弹会随着武器的跟着旋转。不过这里实现的并不是很完美。(兄弟们可以看看这一点如何优化)我是这么实现的当武器旋转完之后通过回调函数来设置武器系统的中在枪膛中的子弹的方向。虽然实现了但是看起来有卡顿的感觉。因为没有实现真正的子弹随着武器的旋转
学习开发cocos2d-x 游戏 实战篇(2)之 欢迎 界面编写 在这里我要说明一下 今天用到的主要知识点 按钮的使用, 界面的跳转 包裹 界面跳转的之间的 特效 还有音乐的播放 ,如何使用cocos2d-x 来保存一些值。对于这些知识点 如果大家不清楚的地方请看下无脑码农的视频或者是龙灵修的视频 这些知识点他们都有讲解。当然也可以在我博客中留言 不懂的地方我也会给你们解答一下。好了废话不多说了下面可是上菜了在这里我要注明一点 我每次使用图片的时候都是从
开发cocos2d-x 游戏 实战篇(1)之 loading 界面编写 在游戏开发中有些资源需要预先加载在内存中这样方便我们在以后的使用。从而加快游戏的速度。特别 是预先从网络上下载资源的更需要一个友好的界面来告诉用户程序正在加载中。这个时候就需要我们做一个loading 界面废话不多说下面开始讲解思路1 当加载图片的时候使用 CCTextureCache::sharedTextureCache()->addImageAsync("gmbg/longd
学习开发cocos2d-x 游戏 (前提篇 一) 这里在该打架说一下 2.1.4 是如何建立项目 方便大家下载我的源码后能快速运行起来 这我说一下我用的python 脚本建立的项目这个是官方推荐的 对于电脑不支持python 的需要安装python 环境 我用的是win32 我在360 软件管理专家里面 搜索了一下就安装了很小的一个东西,安装好之后需要配置环境变量。例如我是是安装在D:\Python27 我就在我的pa
eclipse 移植cocos2d-x工程 报错: Program "bash" is not found in PATH 右击工程-->properties-->C/C++ Build 确认右边视图选项Build command:ndk-build右击工程-->properties-->C/C++ Build -->ToolChain Edit 确认右边视图的选项:Current toolchain:No Toolchain
do...while(0)另类使用方法 在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。 但是,do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。 1. do...while(0)消除goto语句。 通常,如果在一个函数中开始要分配一些资源,然后在中
《模板方法模式》 这个模式就是利用了面向对象的多态,抽象哪些公用的方法,就不用实现了,其他的按照业务逻辑来独自实现。等到调用就ok了 今天只能上代码了[cpp] view plaincopy// TemplateMethod.cpp : 定义控制台应用程序的入口点。 // //****************************
《策略模式》 什么是策略模式,用我个人的定义就是利用了面向对象的多态等特性,通过一个类来管理实体类的一种编程技巧。这种模式在项目中是经常用到的。 通过建模大家可以清晰的看到这些类层次关系。下面就用代码来实现一下。我使用的是VS2005的,大家可以根据需要修改部分代码。 [cpp] view plaincopy#inc
《观察者模式》 观察者模式应该说比较简单,就是将不同观察者注册到被观察者内部,被观察者做了什么动作,都会通知到观察者。。。 代码中,被观察者也可以形成接口,有不同的子类,被观察,更灵活一些。。。 下面代码 [cpp] view plaincopy// Observer.cpp : 定义控制台应用程序的入口点。 //***
《命令模式》 一、建立命令队列;二、可以将命令记入日志;三、接收请求的一方可以拒绝;四、添加一个新命令类不影响其它类;命令模式把请求一个操作的对象与知道怎么操行一个操作的对象分开命令模式感觉就是一个领导接受客户端的命令,让底下的人去做,但是比较特殊。继承命令 上图 上代码 [cpp] view plaincopy
《职责链模式》 责任链模式,用我的理解就是动作的处理链表。根据请求的不同类型,在链表查找相应类型的处理者。处理者是一个链表。用下面的一个图来解释 基本的UML图为[cpp] view plaincopy// ChainofResponsibility.cpp : 定义控制台应用程序的入口点。 //********
《代理模式》 代理模式,就是相同的两个类,一个类做另一个类的代理人。出头露面的是第一个人,实际做事情的是第二人。 但是第一个人怎么知道第二个人能做那些事情。就继承了同一个父类。 CMon类代理他所有女儿的事情。 而不用他们女儿亲自出马,但是呢实际做事情的还是他们女儿。下面上代码 [cpp] view plaincopy
《外观模式》 看了外观模式的一些资料。觉得外观模式就是为了解决实体类过多,而这些实体类就是为了做一件事情,组合起来。 因此外观模式出现了,他就是解决很多类的协调关系。用另个一类聚合这些类之间的事情。因此,当我们调用一个类的时候,所有的事情完成了 这个看起来就像一个外观一样。 图呢,和策略模式差不多,但是本质思想的功能是不一样的。我在这里是用去征政府部门办事
《装饰模式》 自我理解就是把对象重新装饰了一遍。通过继承同一个基类。而不用添加额外的类了。。。。上图吧通过修饰类达到我们想要的效果。修饰类通常初始化了基类。[cpp] view plaincopy// Decorator.cpp : 定义控制台应用程序的入口点。 //**************************
《桥接模式》 桥接模式就是 独立和实现相分离。不同的厂家生产不同的产品。。。。产品和厂家有这组合的关系。上代码[cpp] view plaincopy// Bridge.cpp : 定义控制台应用程序的入口点。 // / //*************************************
《适配器模式》 所谓适配器模式,就是为了解决或者叫融合系统之间的差异,通过提供一个类,来融合这种差异。这让我想起来读《UNIX 编程艺术》里一个名词 就是胶合层。 胶合层也算是一种适配上层鱼下层之间的差异和出现的一种处理方式。 这个是解决系统差异的一个具体表现, 下面上图吧 代码片段 [cpp] view
《建造者模式》 今天学习了建造者模式,目前较为复杂的一个模式之一。但是思考起来就觉得她很像抽象工厂的生产者模式。 但是比生产者多了一个导演着的身份,这个指挥着建造者去生产谁。。。 所以,这个模式还是挺有意思的。直接上UML图。 我们生产两种商品,两种商品是有厂家决定,商品只决定具有哪些。因此,这时候是有生产者说了算。 但是还有一个更高级的指挥
设计模式的分类 根据其目的(模式是用来做什么的)可分为创建型(Creational),结构型(Structural)和行为型(Behavioral)三种:创建型模式主要用于创建对象。结构型模式主要用于处理类或对象的组合。行为型模式主要用于描述对类或对象怎样交互和怎样分配职责。根据范围,即模式主要是用于处理类之间关系还是处理对象之间的关系,可分为类模式和对象模式两种:类模式处理类和子类之间的
《抽象工厂模式》 抽象工厂模式,就是把工厂类也给他多态了。 根据需求不同的工厂生产不同品种的实体。比如在游戏中。 纯在vip用户对应的vip的宠物对应的vip的怪物,或者vip任务。因此,vip工厂就生产vip这些东西了。但是普通的也要生产。因此 就抽象出来两个类了。 下面我是根据游戏中,不同的角色来定义的一些实体类。直接上图,大家就看明白了 也就是
《工厂模式》 所谓工厂模式,其实就是用来产生实例的地方。生产某一类型的产品。因此也是利用了类管理和类多态的一个特性吧。 下面直接上图 在Factory 中产生human的实例, 然后通过实例来调用方法。[cpp] view plaincopy// Factory.cpp : 定义控制台应用程序的入口点。
auto关键字 auto关键字表达式声明的变量类型将根据初始化表达式自动推导出来,而无须由程序员明确指定。auto关键字的使用需注意两点:1.将变量类型替换为auto;2.必须在定义处对变量进行初始化。下面语句合法:auto k = 0;auto d = 2*3.14;下面是非法的:auto int k = 0;auto d;可以大大简化复制变量类型,如下:map>::iterator
VC2010开发学习(Lambda表达式) 许多编程语言都支持匿名函数的概念,所谓匿名函数指的是只有函数体而没有函数名的函数,匿名函数广泛运用于那些只被使用一次且函数体较小的情况。Lambda表达式是一种与匿名函数密切关联的编程技术,实际上一个Lambda表达式隐式定义了一个函数类并构造了一个该函数类的函数对象。可以将Lambda表达式看作一个可以维持状态并且可以访问所在封闭作用域的变量的匿名函数。在作用上,Lambda表达式类似于函数指针
ACE线程安全与同步(Thread Safety and Synchronization) 保护原语为了确保一致性,多线程程序必须在共享数据周围使用保护原语。Protection Primitives in ACEPrimitiveDescriptionACE_MutexWrapper class around the mutual-exclusion mechanism and used to provide
ACE线程管理机制-面向对象的线程类ACE_Task 我们在前一章中使用ACE_Thread包装时,你一定已经注意到了一些不够"优雅"的地方。那一章中的大多数程序都被分解为函数、而不是对象。这是因为ACE_Thread包装需要一个全局函数名、或是静态方法作为参数。随后该函数(静态方法)就被用作所派生的线程的"启动点"。这自然就使得程序员要为每个线程写一个函数。如我们已经看到的,这可能会导致非面向对象的程序分解。ACE_Task对常用线程处理进
ACE线程管理机制-线程的创建与管理 有过在不同的操作系统下用c++进行过多线程编程的朋友对那些线程处理的API可能深有体会,这些API提供了相同或是相似的功能,但是它们的API的差别却极为悬殊,十分令人头痛。ACE_Thread提供了对不同OS的线程调用的简单包装,通过一个通用的接口进行处理线程创建、挂起、取消和删除等问题。一. 线程入口函数所有线程必须从一个指定的函数开始执行,该函数称为线程函数,它必须具有
ACE中UDP通信 udp是一种无连接的协议,提供无连接不可靠的服务。在ace中,通过ACE_SOCK_Dgram类提供udp通信服务,ACE_SOCK_Dgram和ACE_SOCK_Stream的API非常类似,一样提供了send,recv及close等常用操作,这里就不再累述了。udp通信时无需像tcp那样建立连接和关闭连接,tcp编程时需要通过accept和connect来建立连接,而udp通信
ACE中TCP通信 概述:传输控制协议TCP(Transmission Control Protocol):TCP提供可靠的、面向连接的运输服务,用于高可靠性数据的传输。TCP协议的可靠性是指保证每个tcp报文能按照发送顺序到达客户端。Tcp通信过程一般为如下步骤:服务器绑定端口,等待客户端连接。客户端通过服务器的ip和服务器绑定的端口连接服务器。服务器和客户端通过网络建立
ACE主动对象模式(2) 我们简单的介绍了一下ACE主动对象实现方式,同时提出了两个问题:方法调用线程如何知道该方法已经执行完成? 如何或得方法的返回值?要解决这两个问题,首先得介绍一下ACE_Future对象,ACE_Future是表示一个会在将来被赋值的"期货"对象,可以通过ready()函数查询它是否已经被赋值。该对象创建的时候是未赋值的,后期可以通过set()函数来进行赋值,所赋的值可以通过get(
ACE主动对象模式(1) 主动对象模式用于降低方法执行和方法调用之间的耦合。该模式描述了另外一种更为透明的任务间通信方法。传统上,所有的对象都是被动的代码段,对象中的代码是在对它发出方法调用的线程中执行的,当方法被调用时,调用线程将阻塞,直至调用结束。而主动对象却不一样。这些对象具有自己的命令执行线程,主动对象的方法将在自己的执行线程中执行,不会阻塞调用方法。例如,设想对象"A"已在你的程序的main()函
ACE接受器-连接器模式 接受器-连接器设计模式(Acceptor-Connector)使分布式系统中的连接建立及服务初始化与一旦服务初始化后所执行的处理去耦合。这样的去耦合通过三种组件来完成:acceptor、connector 和 servicehandler(服务处理器)。连接器主动地建立到远地接受器组件的连接,并初始化服务处理器来处理在连接上交换的数据。接受器被动地等待来自远地连接器的连接请求,在这
ACE反应器(Reactor)模式 1.ACE反应器框架简介反应器(Reactor):用于事件多路分离和分派的体系结构模式通常的,对一个文件描述符指定的文件或设备, 有两种工作方式: 阻塞与非阻塞。所谓阻塞方式的意思是指, 当试图对该文件描述符进行读写时, 如果当时没有东西可读,或者暂时不可写, 程序就进入等待状态, 直到有东西可读或者可写为止。而对于非阻塞状态, 如果没有东西可读, 或者不可写, 读写函数马上返
ACE前摄器Proactor模式 当 OS 平台支持异步操作时,一种高效而方便的实现高性能 Web 服务器的方法是使用前摄式事件分派。使用前摄式事件分派模型设计的 Web 服务器通过一或多个线程控制来处理异步操作的完成。这样,通过集成完成事件多路分离(completion event demultiplexing)和事件处理器分派,前摄器模式简化了异步的 Web 服务器。异步的 Web 服务器将这样来利用前摄器模式:首先让
ACE学习之定时器(Timer) ACE学习之定时器(Timer)定时器(Timer)在事件超时的时候适当的调用事件处理器的handle_timeout()方法.为调度这样的定时器,反应器拥有一个schedule_timer()的方法.该方法接受事件处理器,以及以ACE_Time_Value对象形式出现的延迟对味参数.此外,可以指定时间间隔,使定时器在它超时后自动恢复 .反应器在内部维护ACE_
ACE学习之创建简单的服务器端和客户端 ACE入门学习之创建简单的服务器端和客户端ACE自适配通行环境(Adaptive Communicatin Environment)是面向对象的框架和工具包。它为通信软件实现了核心的并发和分布式模式。ACE具有分层的体系结构,基本分为三层:1. 操作系统适配层(OS)2. C++包装层3. 框架和模式层Shock类
ACE安装(LINUX操作系统) 1. 下载Latest Release 下载地址在http://deuce.doc.wustl.edu/Download.html。 ACE-6.2.0.tar.gz,很快可以下完。 2. 然后打开官方的安装说明做准备 地址 http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ACE-INS
ACE入门 一、ACE编译a) 下载ACE源文件,你可以从官方网站下载,我的是ACE+TAO+CIAO-6.2.0。下载地址:http://download.dre.vanderbilt.edu/b) 将你下载的ACE.zip解压缩,假设目录为:E:\ACE_wrappers在该目录下你可以发现ACE-INSTALL.html文件,这个文件介绍了如何编译ACE,
Win32 64位系统判断 BOOLIsWow64() { typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL); LPFN_ISWOW64PROCESS fnIsWow64Process; BOOL bIsWow64 = FALSE; fnIsWow64Process = (LPFN_ISWOW64PROCE
SQL2005 静默安装命令参数 "/qb ADDLOCAL=ALL INSTANCENAME=MSSQLSERVER ASACCOUNT=\"NT AUTHORITY\\SYSTEM\" SQLBROWSERACCOUNT=\"NT AUTHORITY\\SYSTEM\" SQLACCOUNT=\"NT AUTHORITY\\SYSTEM\" AGTACCOUNT=\"NT AUTHORITY\\Network Servic
VC实现半透明对话框 SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000);HINSTANCE hInst = LoadLibrary("User32.
C文件操作 所谓文件(file)一般指存储在外部介质上数据的集合,比如我们经常使用的mp3、mp4、txt、bmp、jpg、exe、rmvb等等。这些文件各有各的用途,我们通常将它们存放在磁盘或者可移动盘等介质中。那么,为什么这里面又有这么多种格式的文件呢?原因很简单,它们各有各的用途,区分
回调函数和函数指针 什么是回调函数简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。为什么要使用回调函数 因为使用回调函数可以把调用者和被调用者分开,调用者不关心谁是被调用
函数指针用法 #include #include char * fun(char * p1,char * p2){int i = 0;i = strcmp(p1,p2);if (0 == i){return p1;}else{return p2;
最易变的关键字----volatile volatile 关键字和const 一样是一种类型修饰符,用它修饰的变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。先看看下面的例子:i
const 修饰的只读变量 const 修饰的只读变量必须在定义的同时初始化编译器通常不为普通const 只读变量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的值,没有了存储与读内存的操作,使得它的效率也很高。例如:#define M 3 //宏常量const int
正负数二进制计算 正数的补码与其原码一致;负数的补码:符号位为1,其余位为该数绝对值的原码按位取反,然后整个数加1。按照负数补码的规则,可以知道-1 的补码为0xff,-2 的补码为0xfe……当i 的值为127时,a[127]的值为-128,而-128 是char 类型数据能表示的最
sizeof 使用方法 32 位系统: int *p = NULL;sizeof(p) 4sizeof(*p) 4int a[100];sizeof (a) 100sizeof(a[100]) 1sizeof(&a) 400sizeof(&a[0])
最名不符实的关键字----static 修饰变量第一个作用:修饰变量。变量又分为局部和全局变量,但它们都存在内存的静态区。静态全局变量,作用域仅限于变量被定义的文件中,其他文件即使用extern 声明也没法使用他。准确地说作用域是从定义之处开始,到文件结尾处结束,在定义之处前面的那些代码行也不能使用它。
C 语言标准定义的32 个关键字 auto 声明自动变量,缺省时编译器一般默认为autoint 声明整型变量double 声明双精度变量long 声明长整型变量char 声明字符型变量float 声明浮点型变量short 声明短整型变量signed 声明有符号类型变量unsigne
C语言定义与声明的区别 A)int i;B)extern int i;什么是定义:所谓的定义就是(编译器)创建一个对象,为这个对象分配一块内存并给它取上一个名字,这个名字就是我们经常所说的变量名或对象名。但注意,这个名字一旦和这块内存匹配起来(可以想象是这个名字嫁给了这块空间,没有要彩礼
VC win7权限提取 用Win7系统的人应该知道UAC是什么了,关掉UAC可以省掉很多麻烦事,同时也看不到程序图标上的小盾牌,也不会提示获取系统权限的对话框。这里讨论没有关闭UAC的情况,默认情况下运行的程序是不具有系统权限的,也无法对操作系统做任何修改,而修改系统时间正属于这一类,所以如果程序中