专职C++

不能停止的脚步

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  148 Posts :: 7 Stories :: 134 Comments :: 0 Trackbacks

常用链接

留言簿(13)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

60天内阅读排行

置顶随笔 #

     摘要: 今年7月以来,终于完全投入到cocos2dx手机项目开发了。真是不容易啊。在这之前,做了很多尝试cocos的各种版本。cocos2dx 2.2.2,quick cocos2dx 2.2.4,cocos2dx 2.2.5,cocos2dx.3.0,cocos2dx 3.1,最终,决定还是使用2.2.2这个版本,我的大多数例子也是基于这个版本的,其它的或多或少总有些问题。特别是这次cocos2dx 2.2.5发布,问题也比较大,作者有些随意了。随机项目中进展,我会把项目遇到的问题,会以笔记的方式列出来,为什么:为我以为再次遇到问题可以快速度解决。  阅读全文
posted @ 2014-07-15 23:37 冬瓜 阅读(2107) | 评论 (2)编辑 收藏

     摘要: 由于开发游戏服务器,常常会用到各种时间判断。这里就在原有的标准C时间函数上做了一些扩展,使他可以方便的用在游戏中。希望能对你有用:)
如果涉及到时候,请在程序启动的时候,先运行tzset()。这个函数会设置时间函数的全局变量timezone。下面有些函数用到了,请注意!
注意:C++Builder使用mktime,有bug!使用C++Builder的同志们要注意!
(更新说明,函数有所调整,更新随笔)
  阅读全文
posted @ 2013-06-27 12:09 冬瓜 阅读(1918) | 评论 (1)编辑 收藏

2017年7月21日 #

从上次六一安装试用RAD,这就样过了快两个月了,就想用一下看看,结果报MSBUildToolsPath is not specified for the ToolsVersion "14.0",google了一下,找到原因了,因为我有装过vs2015,但是真心不好用,就卸载了,装了vs2013,于是就报这样的错了。卸载是是比较干净的,但是还是有一个地方注册表有漏了,就是32位注册表(没想64位windows会有64和32两份注册表),
运行:c:\windows\SysWOW64\regedt32.exe
找到:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\14.0

 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersion\14.0
然后删除,就可以了。

再去行RAD,就不报这个错了。
然后就可以开开心心写了一个android例子,顺利跑了起来。

posted @ 2017-07-21 10:07 冬瓜 阅读(44) | 评论 (0)编辑 收藏

2017年7月19日 #

     摘要: JetBrains 在 2016 年底至 2017 年初期间,对 5000 多名开发人员进行了调查,以研究最新的开发生态。

最近,调查结果已公布:Java 被评为最流行的语言,JavaScript 是最常用的语言,而 Go 被认为是最有前途的语言。  阅读全文
posted @ 2017-07-19 15:34 冬瓜 阅读(156) | 评论 (0)编辑 收藏

2017年7月17日 #

一、说明

在es6中增加了一个class,简单明了,比ES5下面强多了 
每个类都有会有一个构造函数constructor。如果没有申明,则会默认分配一个空的。 
如果需要调父类的构造函数,需要在constructor第一行调用super,至于为什么,已经有N多文档说明了。 
例如:

class a {
constructor(m) {
this.m_m = m;
}
};
class b extends a {
constructor(m, m1) {
super(m);
this.m_m1 = m1;
}
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

二、属性方法

在es6中,使用get和set来标明属的读写函数

class a {
constructor(m) {
this.m_m = m;
}
get m() { return this.m_m; }
set m(v) { this.m_m = v; }
};
let testa = new a(1999);
console.log(testa.m);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里就会 打印出1999

三、非静态成员函数

class a {
constructor(m) {
this.m_m = m;
}
get m() { return this.m_m; }
set m(v) { this.m_m = v; }
mult(k) {
return this.m_m * k;
}
add(k) {
return this.m_m + k;
}
sub(k) {
return this.m_m / k;
}
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

在这里可以看到,不需要用function了,又是做了大大的简化。

四、静态成员函数

只需要在类的成员方法前,加一个static关键字就可以了,如果同一个类的静态函数,可以用this来调用。如下面的astatcfun1调用astatcfun,也可以用类名.的方问,如astatcfun2调用astatcfun,建议还是用this,在使用的时候,静态方法,不需new出对象来,直接用对象.的方式,如下面的testcall调用a的静态方法。也可以派生给子类。

class a {
constructor(m) {
this.m_m = m;
}
static astaticfun() {
return 100;
}
static astatcfun1() {
return this.astaticfun() + 200;
}
static astatcfun2() {
return a.astaticfun() + 200;
}
get m() { return this.m_m; }
set m(v) { this.m_m = v; }
mult(k) {
return this.m_m * k;
}
add(k) {
return this.m_m + k;
}
sub(k) {
return this.m_m / k;
}
}; //
function testcall(){
console.log(a.astaticfun());
console.log(a.astatcfun1());
console.log(a.astatcfun2());
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

静态成员函数的调用

class a {
static aaa() {
return "aaa";
}
static bbb() {
return this.aaa() + "bbb"; //同一个类的静态函数调用函数,只需要用this.就可以
}
kkk() { return "kkk"; }
ccc() {
return a.aaa() + "ccc" + this.kkk(); //同一个类的非静态函数调用静态函数,则需要类名.的方式
}
};
let c = new a();
console.log(a.bbb());
console.log(c.ccc());
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

五、派生

在ES6的派生通过extends这个关键字就可以,如

class b extends a() { };
posted @ 2017-07-17 11:47 冬瓜 阅读(110) | 评论 (0)编辑 收藏

2017年7月6日 #

     摘要: 本文不是为了让读者去评判这些程序媛的颜值,而是为了让大众知道,在代码背后,也存在这样一群女性,她们利用自己的技术战胜了世人的偏见,用自己的实力赢得了如今的地位。在这个男性统治的数字世界,她们的成就尤为不易。未来,应该有更多的程序媛,而不是程序员鼓励师。  阅读全文
posted @ 2017-07-06 11:03 冬瓜 阅读(249) | 评论 (0)编辑 收藏

2017年7月5日 #

C++语言做为一个计算机语言,无可厚非的可称为最牛的语言之一。每种语言都有其应用场景。对于反射,运行时类型,其实也只是C#和java这种语言需要的多,而这种语言应用场景和C++是不重叠的。如果强用C++写这些场景的应用,我只能说,哭吧,不是罪。
现在大量的应用,都开始使用更轻量的级的语言了,如javascript,go,swift,lua等。这些语言,也同样没有反射,只提供了少量的运行时信息,但用他们开发起来,比C#和java要轻很多。现在很多手机端app,你则可以很轻松实现,而用java或Objective C,则是各种苦恼!
所以,当 华夏之火吐糟C++的时候,你知道有多少人在吐糟java和C#吗?如果说起php是最好的语言,你服吗?

C++的String和STL相比C#和java确实要差一些,早期版本的STL库还非常难读,还很多个版本实现。但是java和C#这些库比起javascript,lua等语言重很多了。

所以具体的开发,还是选择合适的语言,这样开发,才能呵呵。在各自的应用场景,其实是不能相互替代的。
posted @ 2017-07-05 16:16 冬瓜 阅读(188) | 评论 (0)编辑 收藏

2017年6月26日 #

酷派 全魔王 8298-M02用于测试的手机,需要root,试了7兔,kingroot,百度root,root精灵,最后在完美root这个工具root成功了。
这手机,还不错,算是性价比非常高的手机了,在京东618的时候,以389入手。由于活动的原因,今天才收到。

看到很多人也在求root,在这里发一贴,希望对root的人有帮忙了。不过,这手机,真的不错,超值了。可以确定比某米4A强!质量也比它的好。我去酷派官网看了一下,原价是1299的,哈。

另:完美root好像已经停止进展了~~~


补充:这个手机,居然还送一年乐视会员!太强了

posted @ 2017-06-26 16:03 冬瓜 阅读(233) | 评论 (0)编辑 收藏

2017年6月20日 #

对于vscode,已经更新到1.13了,更新的好快啊。有的时候,需要在Linux下面工作,所以我选择了centos 7.x

废话一下ubuntu,最新17.04,我试装过不少版本(虚拟机下),最后就一个字卡。所以,每次都果断放弃了。反过来说,centos 桌面,虽然很多东西不是很新,但是在虚拟机下,它一点都不卡。centos 7.x的GUI也非常不错。

对于怎么安装vscode,参考官方的https://code.visualstudio.com/docs/setup/linux 有详细的说明。

对于centos则如下:

 

[javascript] view plain copy
 print?
  1. sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc  
  2. sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'  

然后用yum命令安装

 

 

[javascript] view plain copy
 print?
  1. yum check-update  
  2. sudo yum install code  

完成后,就可以用vscode了

 

后面附两张centos 7.x的UI




0
posted @ 2017-06-20 09:43 冬瓜 阅读(229) | 评论 (0)编辑 收藏

centos 安装nodejs主要有两种方式,一种是源码,第二种是二进制安装。 
Linux系统一般来说,不追求新,而是追求稳定。centos 下的软件往往不是最新的,却是相对比较稳定的。我想这也是我们很多人选择centos的原因。(最重要的一点,是用习惯了centos或rhel)

现在Node.js已经8.1.2的,发展很快。如果用源码编译至少需要gcc 4.8.x或clang 3.xx,对于centos 6.x(默认是gcc 4.4.x)是一个麻烦的事,如果你仅是使用nodejs,nodejs编译时间又比较长,所以我这里还是倾向于二进制安装。

本身centos的yum默认是不带的node的安装包的,所以需要第三方方法。 
大家可以看这个网站,https://github.com/nodesource/distributions

上面提供了ubuntu,debian,linux Mint,还有centos(rhel)等安装方法。 
我这里,使用安装 nodejs 8.x 
所以内容如下

#要求在root下执行 curl -sL https://rpm.nodesource.com/setup_8.x | bash - yum install -y nodejs
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

很简单,我在centos 6.x下就完成了node.js 8.1.2的安装。

posted @ 2017-06-20 09:43 冬瓜 阅读(239) | 评论 (0)编辑 收藏

2017年6月1日 #

版权声明:本文为zdhsoft博主原创文章,未经博主允许不得转载。

因为装了Android studio 2.3 所以就默认安装了android sdk和NDK,用的NDK的版本是r10d x64。在安装RAD Studio的时候,就没有选择安装android的sdk和NDK,然后,用C++Builder创建MultDevice工程 ,编译为android目标就报如下错:


问是是arm-Linux-androideabi-ld.exe执行报错,而Delphi的版本,则没有问题!

然后找到RAD Studio的安装包,发现它有一个android-ndk.7zip的文件,然后用7z工具打开,发现里面是一个NDK r9c的版本,然后我就它提出出来,放到一个目录,如:d:\ndk\r9c,然后配置RAD studio





配置完成后,就可以编译android了,接上手机,就可以在真机上跑了

初步试用通过,感觉还是一个半成品的样子!C++Builder代码提示还是卡,有点改善的样子。

posted @ 2017-06-01 21:20 冬瓜 阅读(291) | 评论 (0)编辑 收藏

版权声明:本文为zdhsoft博主原创文章,未经博主允许不得转载。

N久没有碰C++Builder,虽然他给了一个注册码,基本版的,但是一想我XE6,XE7的时候,那个版本,对于我128G的C盘都觉得不够,反正装完就少了几十个G,C盘提示一下就变红了有没有。今天想看看,于是下载了一个10.2版本,

下载地址:http://altd.embarcadero.com/download/radstudio/10.2/delphicbuilder10_2.iso

安装的时候,需要.net 3.5,我只能说,从C++Builder 6以后,就摔不开.net

然后就顺利安装完成。给我最大的惊喜是安装的临时文件都清理了,只需要11G就OK了!以前要是要30G以上,少于40G剩余空间,则会安装不了。

先用delphi创建一个mult device 应用,就随便选了一个,如下图:


然后就直接编译运行,在Android运行OK

当一切都顺利的时候,我接着用C++Builder创建一个同样的工程

然后就报这样的错:


所有的C++Builder的android应用 ,都是同样的错误,对于iOSLinux,由于空间有限,就没有选择安装。

对于win32程序,则暂时OK!

posted @ 2017-06-01 21:19 冬瓜 阅读(271) | 评论 (0)编辑 收藏