随笔分类 - C/C++
摘要:最近让同事给UE4一个功能,识别出 .ts、.json文件,然后双击这些文件可以直接打开。 默认双击 .json 时,调用 Windows 自带的记事本打开文件,不习惯,想着能否像右键菜单一样选择用哪个应用程序打开,比如我指定Visual Studio Code 或者 Sublime Text。 图
阅读全文
摘要:基于DriectUI有很多库,比如 Duilib (免费) soui (免费) DuiVision (免费) 炫彩 (界面库免费,UI设计器付费,不提供源码) skinui (免费使用,但不开放源码,仅支持 VS 2013) Duilib 很久不维护了,而很多不同的分支,似乎都不太维护。微信 Windows 的版本是基于 Duilib 进行开发的,说明应该还是很广泛的。 我当时最倾向于 ...
阅读全文
摘要:被坑的不浅,遇到错误:“ LNK1561:必须定义入口点”,解决方案删除再建,步骤一遍一遍操作,还是报错。如下图所示: 首先,它必须要改成DLL或者LIB(动态/静态库),如果是应用程序那必须要提供main函数的主入口。网上提供的方法,比如改 系统 - 子系统,各种方法都试过了,始终是报错。 冷静了一下,觉得是新建空项目那里有问题。然后就改创建一个win32的空项目。 再添加lu...
阅读全文
摘要:在使用VC++进行开发时,如果按F5进行Debug时,当前相对资源是相对工程的vcxproj的文件夹目录,而直接双击运行exe时,资源是相对exe的文件夹目录。为了兼容这二者,最好使用绝对路径,这样无法是Debug还是直接双击运行exe时都不会遇到无法加载资源的问题。 char* WcharToChar(const wchar_t* wp) { char *m_char; in...
阅读全文
摘要:libuv经过Node.js的实践和应用,已经证明非常之成熟,本来之前项目用的是这个:clsocket https://github.com/DFHack/clsocket 当初选它的主要原因是它支持Windows、Linux、Mac OSX(我猜测的),但致命的缺点就是仅支持阻塞的TCP,这样就会导致一个问题,在连接游戏服务器、聊天服务器的时候游戏主界面会直接被卡死,等连接成功后才能恢复正常。...
阅读全文
摘要:codelite官方打不开,从这里下载安装程序,地址:http://sourceforge.net/projects/codelite/ 在使用codelite的时候遇到的几个问题: 1)、中文问题的处理 如果还不行,可以在项目的编译参数上添加 -fexec-charset=GBK;-finput-charset=UTF-8; 2)、设置GDB调试 ...
阅读全文
摘要:我本意是想在windows下学习下C++11,而结果是我的Visual Studio 2012不完全支持,而我又懒得去安装2013/2015,太大了。公司运维也不允许我去下载- -,然后就想能不能在windows环境下搞个gcc玩,然后我又知乎了一把,大意的意见是clang把gcc甩了好远,所以我就决定安装clang环境来学习一下,过程中还是遇了几个坑… -----------------...
阅读全文
摘要:安装:eclipse(http://www.eclipse.org/)、CDT(C/C++ Development Tooling)、ADT(Android Development Tools) https://dl-ssl.google.com/android/eclipse/ 可以先从官方下载jar,然后本地安装:http://www.eclipse.org/cdt/downloads....
阅读全文
摘要:今天突然接到客服那边的反馈说,有玩家反馈进游戏后不久就崩溃了,我先是怀疑网络问题,因为一连接聊天成功后就挂了。之后用logcat抓日志,发现挂在jni那里了 JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0xf0 string: '' in cal...
阅读全文
摘要:标准中int const a 与 const int a 是完全等价的。正因为如此,会有很多各种不同的风格,同样的还有“*是跟类型还是变量?”,比如char* p与 char *p,它们是等价的。 是采用const T& t还是 T const& t呢 是采用int* a 还是int *a呢 我在看《C++ Templates中文版》时,它里面特别提到要使用 int const 这种定...
阅读全文
摘要:我们手机游戏中,通过上报收集到的数据来分析,发现相当多的一部分用户,在请求一些配置时会遇到无法解析的情况,或者域名的解析直接被拦截了。 特别是游戏的补丁包文件(放在CDN上),遇到的域名解析失败是最多的,比较小的配置可以通过请求动态接口来获得数据,但是比较大的补丁文件,比如单个zip就超过15M这样的文件,就无法提供接口来返回数据了。这些问题很棘手,如何解决确实困扰了很久 有一个方案,就是分流...
阅读全文
摘要:先简单介绍一下被迫使用Lua的IO的情境: 游戏支持玩家自定义上传头像,在排行榜中会显示玩家列表(包括本服、跨服),原有的做法是先检测CCUserDefault中是否存在指定图片的key以及它的状态。然后在下载头像、下载完成后设置对应的状态。这样导致的一个问题就是CCUserDefault的读写完全失效了。整个游戏下载的补丁包判断和其它判断就完全失效了,不得卸载游戏后重装。个人目前的推测是...
阅读全文
摘要:在页游时代,使用Flash ActionScript 3.0进行开发,as3提供比较简单和健全的socket API。到了手游时代,基于tcp的socket编程遇到了一些棘手的问题。通常情况下手游都要支持至少二大主流平台:Android、IOS,二者共存,暂时没有迹象表现哪一方会没落。 页游跑在浏览器里,所有的连接成功、失败等操作,都可以通过addEventListener进行监听,很方便...
阅读全文
摘要:Visual Studio一启用应用程序就提示“操作无法完成,因为该文件已在xx.exe中打开”,但是我启动的就是xx.exe啊 然后我杯具的发现debug目录下所有的dll都被删除掉了 这个程序依赖很多dll,只能一个一个重新生成,又杯具的发现生成完成再启动还是会遇到上面的问题,重启vs也还是不行,重启电脑还是不行。试了网上各种操作,包含csdn中一个二年前描述一样的问题(帖子中也没...
阅读全文
摘要:libcurl参数很多,一不小心就容易遇到问题。曾经就遇到过一个很蛋疼的问题:libcurl断点下载>> 这里主要汇总一下,libcurl上传的二种方式: 1、直接上传文件,类似form表单,> 直接上传文件: struct curl_httppost *formpost = NULL;struct curl_httppost *lastptr = NULL;curl_...
阅读全文
摘要:2015年2月1日后新提交的应用必须要支持64位架构。 我所使用的是cocos2d-x V2.0版本,而且源码有部分代码是修改过的。好在cocos2d-x官方已经放出了一个支持64位的2.2.6版本,可以做为参考。 iOS 64-bit support for v2.x>> zip包下载>> 在修改之前,有必要了解一下32位与64位的一些区别,网上能搜索到的资料有很多,这里简单...
阅读全文
摘要:经常性遇到libcurl的问题,而且都特别奇怪,记录一下CURLcode的定义: http://curl.haxx.se/libcurl/c/libcurl-errors.html #include enum CURLcode{ CURLE_OK = 0, CURLE_UNSUPPORTED_PROTOCOL, /* 1 */ CURLE_FAILED_INIT,...
阅读全文
摘要:最近游戏把资源(图片、配置、lua)的加载、更新全部改了 ,加载其实还好,就是不走之前的zip解压方式。 以前的大体流程: 下载 –> 启动 –> 解压 –> 更新 –> 进入游戏 现在的大体流程: 下载 –> 启动 –> 更新 –> 进入游戏 之前使用散文件gzip方式更新,现在换成下载zip包(断点下载) 在改动完成之后准备提交appstore,结果崩溃的发现在某...
阅读全文
摘要:在Android打包项目时,发现登录功能不能使用了,logcat中也没发现什么问题,最后一行一行log定位到了问题。原来是一个so文件中的构造函数被初始化二次! 这个单例是通过继承模板来实现的(暂时不考虑线程安全的问题) templateclass CSingleT{public: static T * Instance() { if (!ms_pObje...
阅读全文
摘要:项目中遇到一个bug,因为接入了几家越狱平台:91、同步推、PP助手,在设备上安装了三个应用,启用其中任意一个,另外二个启动后无法创建发送socket消息,从而导致游戏直接死在登录那里,再次点击登录时线程才会被唤醒(无法发送的原因定位到,是因为在调用sem_post方法后无法将线程唤醒)。之后我尝试将信号量改为条件变量,就再也没有遇到那个问题了。具体改写的几个方法: sem_open/sem_i...
阅读全文