在Win下通过代码调用CMD执行批处理不是什么新技术了,主要是有一下三种方式,这里粗略提下.我实现过C版 C++版,汇编版,AS版的调用执行批处理命令.下面是C++版本的做法:

直接调用函数system

最简单的方式可如下调用system函数执行命令

system("echo Hello CMD");

缺点:会显示CMG控制台窗口,无回显数据,优点:简单直接

使用ShellExecuteEx

其次简单的方式是使用ShellExecuteEx函数

SHELLEXECUTEINFO sei; 
memset(&sei, 0, sizeof(SHELLEXECUTEINFO)); 
sei.cbSize = sizeof(SHELLEXECUTEINFO); 
sei.fMask = SEE_MASK_NOCLOSEPROCESS; 
sei.lpVerb = _T("open"); 
sei.lpFile = _T(strToolName); 
sei.lpParameters = "echo Hello CMD";
// SW_HIDE SW_SHOWNORMAL 参数决定是否显示控制台
sei.nShow = SW_HIDE;//; SW_SHOWNORMAL
ShellExecuteEx(&sei); 
// 等待进程结束再往下执行
WaitForSingleObject(sei.hProcess, INFINITE); 
CloseHandle(sei.hProcess); 

缺点:无回显数据,优点:可隐藏控制台

继续阅读

概念篇

DirectX 9.0,C++

作为3D编程菜菜,经同事指点若须打好基础,应从DirectX3D开始,因为D3DX对于3D编程的封装没那么高级.同样一个功能 D3DX往往需要几个函数,而OpenGL等则一个函数搞定,太高级的封装反而隐藏了原理.(大家都会用cocos2d-x,而且用得很溜,试问又有几个能拍胸脯说真正理解其内部原理呢.)下面记录一些常用概念,主要方便自己查询.

什么是引擎

引擎是什么?大家在游戏开发中肯定会遇到的,在日常同行交流中 首先问的估计也是:你们项目用的是什么引擎啊?用cocos2d-x?用U3D?用虚幻4?用CryEngine?用godot?那为什么要把他们叫做引擎呢?说到引擎一般有三种东西:

  • 机器发动机

汽车的引擎也叫发动机,因为那是整个汽车的动力源泉.

  • 搜索引擎

搜索引擎指自动从因特网搜集信息,经过一定整理以后,提供给用户进行查询的系统。

  • 游戏引擎

游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些互交式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程序而不用由零开始。大部分都支持多种操作系统平台,如Linux、Mac OS X、微软Windows。游戏引擎包含以下系统:渲染引擎(即“渲染器”,含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理。

我们关注的显然是游戏引擎,一句话概括:游戏引擎就是一整高级编程组件.

继续阅读

工作变动

在3月02日从中手游离职出来已经一个月了,不知不觉在这个公司呆了快三年时间,而我刚毕业对自己的计划跳槽时间点也刚好是三年.这个时间离开也不算违背了当初自己的计划,离职的原因真的很难说清楚.委屈了?还是钱少了?其实都有,只是委屈的成分现在感觉更足一点(未来我可能会转而认为还是钱的问题,毕竟委屈这个东西是会因为时间而冲淡的,就像某些感情一样).明明我们都那么爱游戏.现在能回忆起来最清晰的还是那一场又一场和不同的人吃的不同的散伙饭.我们究竟要散伙多少次才能找到 真^伙伴 呢.

离职的当天就是我到现在的公司入职的时间.在现在的公司我适应度快得出于意料,刚毕业那时候在意的很多东西 主观的客观的,现在反而能淡然处之.而那个时候口头最在意其实心里最无视的东西-个人成长,现在反而真正重视起来.希望在现在这个创业公司能创造一些美好的东西.

近期忙碌

在过去一个月里,我主要是负责把现在公司之前封装的一套cocos2d-x代码 兼容到android平台,编写部分文档和新增引擎测试案例.由于在上周已经决定转向3D,所以目前这套我认为已经达到70%(有很多还可以细化的地方并没有处理.)的封装库也等于没太大作用了.同事做得比我更干脆,他直接分享了,传送门. 需要的可以去下载玩玩,某些功能相当不错,对骨骼动画性能的优化,对图片资源大小的压缩更是超出目前普遍的处理方式几条街,但是BUG也不少.谁能真正阻止BUG的产生呢?呵呵

继续阅读