摘要: 今天分享下一个路径分割的API,可以将一个完整的绝对路径分割为: 盘符(包括冒号:) 路径(包含前面&后面的\,不含盘符&文件名) 文件名(不含扩展名) 扩展名(包含前面的.)先不说话,直接上代码,代码功能:获取当前exe的完整路径,然后分割。1 TCHAR szPath[MAX_P... 阅读全文
posted @ 2014-07-03 11:14 nchxmoon 阅读(3930) 评论(0) 推荐(1) 编辑
摘要: cocos2d-x环境的搭建之xcode-本人亲历成功搭建!写给大家的前言,在学习cocos2d-x的时候自己走了很多的弯路,也遇到了很多很多问题,不管是简单的还是困难的现在都慢慢的一步一步克服了,其实用cocos2d-x做游戏特别的简单,大家不要被是做游戏吓到了,支持我把游戏开源的原因是因为 eo... 阅读全文
posted @ 2014-03-28 16:11 nchxmoon 阅读(6990) 评论(0) 推荐(0) 编辑
摘要: 1. 注释 单行注释:--,类似于C++的// 多行注释:--[[ ... ]],类似于C++的/*...*/2. 语句 分隔符:分号或者空格,一般多行写一起,建议用分号 语句块:do ... end 赋值语句: a, b, c, d = 1, 2, 3, 4 -- global variables local a, b, c = 1, 2, 3 -- local varialbes a, b = b, a -- swap data 赋值运算:+、-、* 、^(乘方) -- 2^3=8、..(连字符) -- "hello" .. " world"... 阅读全文
posted @ 2013-11-08 15:39 nchxmoon 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 我们开发过程中可能会经常遇到,需要屏蔽EXE的双击运行功能,只能通过宿主程序(Service或EXE)来启动。比如腾讯的迷你弹窗,就只能通过主程序来启动,而不能直接通过双击来运行。实现原理:宿主程序可以通过向子程序命令行参数可以来启动,而子程序在初始化的时候,会去检测当前的命令行参数是否匹配;如果匹配,就启动;如果不匹配,就不启动。 因为宿主程序可以通过CreateProcess来传递命令行参数,所以可以顺利执行;而双击程序,没有传递任何命令行参数,自然程序也就没法启动了。程序示例:#define CMD_LINE _T("CommandLine")子程序在程序 阅读全文
posted @ 2013-07-18 14:55 nchxmoon 阅读(1298) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 我们开发过程中可能会经常遇到,只启动一个程序实例。即一个程序启动之后,如果再次执行该程序,将会恢复之前打开的程序,而不是打开一个新的程序。实现原理:利用FindWindow/FindWindowEx查找指定窗口的句柄,如果找到,则当前程序已经执行,只需重新显示到最前面即可;如果没有找到,表示程序没有运行, 继续执行程序初始化。程序示例:BOOL SingletonInstance(){ HWND hPreWnd; if ( hPreWnd = ::FindWindow(NULL, APP_NAME) ) { if ( IsIconic(hPreWnd... 阅读全文
posted @ 2013-07-18 14:37 nchxmoon 阅读(3221) 评论(2) 推荐(1) 编辑
摘要: 问题描述: 我们在程序开发当中,经常会遇到某些子程序需要实现一天只启动一次的功能,该功能实现的方法有很多种,其原理都是通过记录标记为来实现的。本次要分享的也是利用程序标记为来实现的,而且只需要使用一个标记为:上次启动时间,并将这个标记为保存在注册表中!实现原理: 1. 子程序第一次启动的时候,在注册表中创建一个新的键值,并且保存当前系统时间; (此部分代码省略) 2. 通过定时器去监测是否启动子程序,并对当前时间与当天的最后时间(23:59:59)进行比较;如果当前时间小于当天最后时间,不执行;如果大于,执行子程序,并且将当前时间更新到注册表中; 3. 时间比较... 阅读全文
posted @ 2013-07-17 18:30 nchxmoon 阅读(1069) 评论(0) 推荐(0) 编辑
摘要: time_t -> tm: localtimetm -> time_t: mktime time_t curTime; time(&curTime); dwCurTime = curTime; struct tm *mytm = localtime(&curTime); time_t time2 = mktime(mytm); 阅读全文
posted @ 2013-07-17 18:10 nchxmoon 阅读(5540) 评论(0) 推荐(0) 编辑
摘要: 最近在看《深度探索C++对象模型》,对于Struct的用法中,发现有一些地方值得我们借鉴的地方,特此和大家分享一下,此间内容包含了网上搜集的一些资料,同时感谢提供这些信息的作者。原文如下: 例如,把单一元素的数组放在一个struct的尾端,于是每个struct objects可以拥有可变大小的数组。 code: structmumble { //stuff charpc[1]; }; //从档案或标准输入装置中取得一个字符串,然后为struct本身和该字符串配置足够的内存 struct mumble *pmumbl=(struct mumble*)mal... 阅读全文
posted @ 2013-06-20 10:12 nchxmoon 阅读(3281) 评论(0) 推荐(2) 编辑
摘要: 先为对话框加上2个radio button,分别是Radio1和Radio2。问题1:如何让Radio1或者Radio2默认选上?如何知道哪个被选上了?关键是选上,“默认”只要放在OnInitDialog()即可。三种方法可以让它选上, 第一种: ((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);//选上 ((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(FALSE);//不选上 ((CButton *)GetDlgItem(IDC_RADIO1))->GetCheck();返回1 阅读全文
posted @ 2013-04-03 10:30 nchxmoon 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 相比于静态加载lib库,动态加载DLL更具有灵活性,而且不需要知道头文件。一般来说,动态加载DLL有以下几个步骤: 第一,根据DLL的函数,定义对应的函数指针。比如 1 // Define function pointers.2 typedef LPSTR (*PU2A)(LPCWSTR wStr, int iCodePage);3 typedef LPCWSTR (*PA2U)(LPCSTR aStr, int iCodePage); 第二,加载DLL,并返回HMODULE。如下:1 HMODULE hModule = ::LoadLibrary(_T("HbUtils.dll&q 阅读全文
posted @ 2013-04-02 17:12 nchxmoon 阅读(262) 评论(0) 推荐(0) 编辑