![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++
cppbegginer
一切都是浮云~
展开
-
安卓无法打包
打包的时候报错,错误是:Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.原因是目标代码的系统版本从4.X降低到2.X因为最新的19版本会在你的项目下建立一个依赖包 Android Dependencies,在eclipse中右键这个文件夹,在原创 2014-01-11 11:26:49 · 539 阅读 · 0 评论 -
VC2005:Warning C4819
这个警告虽然没有什么影响。要想去掉这个警告的方法有:(1)转换Code文件为Unicode格式;(2)在Project -> Properties -> Configuration Properties -> C/C++ -> Advance 的 Disable Specific Warnings 中添加相应的警告编号:4819;(3)或找出不符合Unicode格式的文件,转载 2013-03-12 11:20:43 · 599 阅读 · 0 评论 -
ubuntu11.10搭建eclipse C++开发环境
参考了网上的各种资料,终于搭起来了1.最重要的东西,C++必要工具,安装的是GCC工具链,Make等一系列开发工具: sudo apt-get install build-essential2. 安装Eclipsesudo apt-get install eclipsesudo apt-get install eclipse-pdesudo apt-ge转载 2013-02-20 15:39:51 · 319 阅读 · 0 评论 -
boost锁的概述
● boost锁的概述boost库中提供了mutex类与lock类,通过组合可以轻易的构建读写锁与互斥锁。 ▲ mutex对象类mutex类主要有两种:boost::mutex,boost::shared_mutex,其中mutex有lock和unlock方法,shared_mutex除了提供lock和unlock方法外,还有shared_lock和转载 2013-01-30 22:07:58 · 632 阅读 · 0 评论 -
gdb 常用调试方法
gdb [exe_file_name] [core_file_name]进入core文件调试bc 打印出崩溃地址print var_name 打印出变量var_name的值list 显示附近代码break -设置断点continue -继续执行直到下个断点step -单步跳入next -单步跳过quit -退出原创 2013-01-14 15:25:08 · 152 阅读 · 0 评论 -
使用 Boost 的 IPC 和 MPI 库进行并发编程
Arpan Sen, 独立作家简介: Boost C++ 库让并发编程变得既简单又有趣。学习如何使用两个 Boost 库 —— Interprocess (IPC) 库和 Message Passing Interface (MPI) 实现共享内存对象、同步文件锁和分布式通信等功能。发布日期: 2011 年 6 月 07 日 级别: 中级 原创语言: 英文转载 2013-01-07 14:55:07 · 730 阅读 · 0 评论 -
VC++编译器的使用技巧
#pragma message("123"),123则会被输出原创 2013-01-03 21:20:15 · 437 阅读 · 0 评论 -
new operator and operator new
1. new的执行过程:(1)通过operator new申请内存(2)使用placement new调用构造函数(简单类型忽略此步)(3)返回内存指针 2. new和malloc的比较:(1)new失败时会调用new_handler处理函数,malloc不会,失败时返回NULL(2)new能通过placement new自动调用对象的构造函转载 2013-01-04 13:49:16 · 377 阅读 · 0 评论 -
linux下编译QT
需要安装好x11相关的lib,sudo apt-get install libX11-dev libXext-dev libXtst-dev,然后编译QT原创 2012-12-16 23:11:13 · 370 阅读 · 0 评论 -
VS2010中release设置断点调试
在Project->Properties->c/c++->General->Debug Information Format 选择 /Zi在Project->Properties->Linker->General->Debugging 的Generate Debug Info 中选择YES完全的断点设置需要加上:Project->Properties->c/c++->Opt原创 2012-10-12 17:04:12 · 4039 阅读 · 0 评论 -
mysql远程访问受限
‘127.0.0.1’ is not allowed to connect to this MySQL serverConnection closed by foreign host远程访问权限 安装了mysql,然后用telnet ip 3306,端口后报BHost ‘127.0.0.1’ is not allowed to connect to this MySQL server转载 2012-12-27 20:12:49 · 450 阅读 · 0 评论 -
Makefile wildcard notdir patsubst 简介
1、wildcard : 扩展通配符2、notdir : 去除路径3、patsubst :替换通配符例子:建立一个测试目录,在测试目录下建立一个名为sub的子目录$ mkdir test$ cd test$ mkdir sub在test下,建立a.c和b.c2个文件,在sub目录下,建立sa.c和sb.c2 个文件建立一个简单的makefilesrc=$(w转载 2012-12-27 14:34:59 · 369 阅读 · 0 评论 -
C++操作符的优先级
C++操作符的优先级C++操作符的优先级操作符及其结合性功能用法LLL::::::全局作用域 类作用域 名字空间作用域::nameclass::namenamespace::nameLLLLL.->[]()()转载 2012-12-13 11:01:01 · 493 阅读 · 0 评论 -
【Boost】boost库中sleep方法详解
boost库中sleep有两个方法:1. 这个方法只能在线程中用, 在主线程中用无效. 原型:[cpp] view plaincopyprint?void sleep(TimeDuration const& rel_time); void sleep(system_time const& abs_time); 实例:转载 2013-03-12 19:03:00 · 2141 阅读 · 0 评论 -
Windows使用CPU时间戳进行高精度计时
对关注性能的程序开发人员而言,一个好的计时部件既是益友,也是良师。计时器既可以作为程序组件帮助程序员精确的控制程序进程,又是一件有力的调试武器,在有经验的程序员手里可以尽快的确定程序的性能瓶颈,或者对不同的算法作出有说服力的性能比较。 在Windows平台下,常用的计时器有两种,一种是timeGetTime多媒体计时器,它可以提供毫秒级的计时。但这个精度对很多应用场合而言还是太粗糙了转载 2013-03-20 15:21:56 · 1941 阅读 · 0 评论 -
linux下,socket端口不能释放
我的工作流中有一个即时消息服务器,布署在tomcat下。在linux系统环境下启动tomcat后,服务器跟着启动,指定socket端口处于监听状态,但在tomcat停止时,socket不能释放。同样的应用,在windows环境下就是正常的。a)在linux下启动消息服务器时,用“/tomcat/bin/catalina.sh run”命令。如果当前在bin目录下,执行“./catalina转载 2013-04-02 15:13:16 · 1182 阅读 · 0 评论 -
Eclipse CDT 编译运行出错时,控制台信息乱码
sh E:\next\client\cocos2d-x\samples\Lua\HelloLua\proj.android\build_native.sh NDK_ROOT = D:/android-ndk-r9c-windows-x86_64/android-ndk-r9cCOCOS2DX_ROOT = /cygdrive/e/next/client/cocos2d-x/samples/原创 2014-01-10 17:36:51 · 1041 阅读 · 0 评论 -
TortoiseSVN 配合 Beyond Compare 3 或 WinMerge 的设置
TortoiseSVN,比较,SVN,Merge,Differ,WinMerge,BeyondCompare日常code工作中,比较麻烦的就是SVN版本冲突时的Merge了,因为TortoiseSVN的比较工具只能比较,不能同时做Merge,一直以来总是在用WinMerge来扩展TortoiseSVN本身的Differ,虽然方便很多,但是WinMerge和BeyondCompare转载 2013-08-13 17:53:01 · 1376 阅读 · 0 评论 -
cocos2d-x中讲解TileMap地图编辑器的高级用法(三)
上一篇教大家了一些TileMap地图块设置的基本规则和注意事项这一篇开始教大家些复杂的东西:如何通过地图块的id做一些事件的判断。这里先解释下图块的id是什么:图块的id就是当你加载地图图片的时候通过设置图片切块的大小会把一张地图图片切成很多小块,这些小块会自动编成一个一维数组,从0开始,如下所示第一步:首先解决第一个问题:如何获取图块id因转载 2013-06-08 17:02:47 · 4418 阅读 · 0 评论 -
cocos2d-x中讲解TileMap地图编辑器的高级用法(对象层部分)
之前三篇地图主要讲的都是地图绘制有关的部分,这一篇就讲一讲如果添加对象层,以及如何处理对象层的信息我们点击 图层->添加对象层这里就会出现一个新的对象层,区别于图层,用紫色标记同样的,我们更改下名字,变为“object0”光加了层没用,我们还得在层上标记具体的对象下面我们把光标点中“object0”对象层我们可以看见工具栏有了转载 2013-06-08 17:19:38 · 4834 阅读 · 1 评论 -
cocos2d-x中讲解TileMap地图编辑器的高级用法(一)
有段时间没更新博客了,最近一直忙项目,下面就把我最近的新成果给大家分享一下。近段时间主要是在研究开发工具与游戏制作的结合,大家知道工欲善其事必先利其器,一款好的方便的开发工具能够极大的提高游戏的开发效率,特别是在制作关卡这些东西的时候,这也就是为什么国外现在有这么多的开发引擎工具,特别是3d的比如unity3d,unreal,cryEngine等等都是基于这种需求而开发的。那么我这转载 2013-06-08 16:57:56 · 2627 阅读 · 0 评论 -
cocos2d anchor point 锚点解析(转)
anchor point 究竟是怎么回事? 之所以造成不容易理解的是因为我们平时看待一个图片是 以图片的中心点 这一个维度来决定图片的位置的。而在cocos2d中决定一个 图片的位置是由两个维度 一个是 position 也就是图片的中心点 另外一个是anchor point。只要我们搞清楚他们的关系,自然就迎刃而解。他们的关系是这样的: actualPosition.x = po转载 2013-06-06 18:51:56 · 585 阅读 · 0 评论 -
cocos2d-x中讲解TileMap地图编辑器的高级用法(二)
上一篇教大家做好了一张地图,那么我们如何在真正的游戏中使用呢,这一篇就是主要教大家在cocos2d-x中使用我们把上一篇做好的地图保存后,放置在游戏项目的资源目录下那么我们包含地图的代码其实非常简单 view sourceprint?1.CCTMXTiledMap* map = CCTMXTiledMap::create(转载 2013-06-08 16:59:18 · 3710 阅读 · 0 评论 -
cocos2d-x中讲解TileMap地图编辑器的高级用法(对象层部分)
之前三篇地图主要讲的都是地图绘制有关的部分,这一篇就讲一讲如果添加对象层,以及如何处理对象层的信息我们点击 图层->添加对象层这里就会出现一个新的对象层,区别于图层,用紫色标记同样的,我们更改下名字,变为“object0”光加了层没用,我们还得在层上标记具体的对象下面我们把光标点中“object0”对象层我们可以看见工具栏有了转载 2013-06-08 17:07:49 · 105 阅读 · 0 评论 -
lua全局变量
全局变量不需要声明,虽然这对一些小程序来说很方便,但程序很大时,一个简单的拼写错误可能引起bug并且很难发现。然而,如果我们喜欢,我们可以改变这种行为。因为Lua所有的全局变量都保存在一个普通的表中,我们可以使用metatables来改变访问全局变量的行为。第一个方法如下:setmetatable(_G, { __newindex = function (_, n)转载 2013-04-25 21:05:19 · 553 阅读 · 0 评论 -
Socket相关程序:从Windows移植到Linux
socket相关程序从windows移植到linux下需要注意的 Linux Socket编程中的shutdown和close1,只要TCP栈的读缓冲里还有未读取(read)数据,则调用close时会直接向对端发送RST。2,shutdown与socket描述符没有关系,即使调用shutdown(fd, SHUT_RDWR)也不会关闭fd,最终还需close(fd)。3,可以认转载 2013-04-24 22:12:29 · 580 阅读 · 0 评论 -
解决windbg不能正常分析win2008任务管理器导出的dmp文件
载入dmp文件后,输入!analyze提示:The wow64exts extension must be loaded to access 32-bit state..load wow64exts will do this if you haven't loaded it already.在windbg中输入.load wow64exts转载 2013-03-20 20:07:34 · 1705 阅读 · 0 评论 -
Linux 下安装subversion 详细指南
1 下载相关的软件Apache-2.x http://httpd.apache.org 下载源代码包Subersion http://subversion.apache.org/download/#recommended-release 下载源代码包本文中apache的版本为 Apache/2.2.4 (Unix)Subversion 版本:svnserve 1.4.转载 2012-12-12 15:42:01 · 397 阅读 · 0 评论 -
linux下面_在程序中打印调用堆栈
一直以来都没有花太多精力放在学习调试方面,主要还是平时调试的机会相对较少,一般情况下,用strace、gdb、以及通过打印log基本上就能解决问题了,还有就是,与其花精力去提高调试技能,还不如在设计、防御式编程和单元测试等能力去提高,以及提高自已编码的质量,减少BUG的出现或者缩少BUG的范围。 但是,有时使用调试工具并不是为了查找BUG,在阅读和分析源代码时也非常有用,下面的代码演转载 2012-12-12 15:44:37 · 2716 阅读 · 0 评论 -
谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词
这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级。整理这篇文章的动机是两个问题:问题一:使用Windows记事本的“另存为”,可以在GBK、Unicode、Unicode big endian和UTF-8这几种编码方式间相互转换。同样是txt文件,Windows是怎样识别编码方式的呢?我很早前就发现Unico转载 2012-12-11 09:36:48 · 396 阅读 · 0 评论 -
c++ vector 排序
#include #include #include #include using std::vector ;using namespace std;struct sample{ float features[3]; int index;};struct MySortFunction{ int m_n; MyS转载 2012-02-17 14:54:27 · 857 阅读 · 0 评论 -
VS2010 警告 LNK4042
1、把报LNK4042的.h和.cpp从项目中排除2、重新加入排除的.h和.cpp原因:如果在属性窗口修改了文件的设定,就可能发生,或许是因为在文件移动时后,VS2010在原来的路径下创建原来的文件,导致会有两份文件进行编译,而VS2010默认所有编译文件都是在一个目录下的,同名的文件已经存在,所以略过编译,导致其中一份没有编译,链接错误。原创 2012-01-05 11:28:13 · 2201 阅读 · 0 评论 -
C语言精确获得消耗时间
需要判断某段代码执行所消耗的时间用C语言的clock(),clock返回当前进程创建到现在经过的时钟周期数。在代码段的起始和结束使用此函数获得两个时间,然后相减即为耗时:#include #include int main(){ time_t tBegin; tBegin=clock(); // //代码段... // time_t tCost=clock()-tBeg原创 2011-12-28 11:36:30 · 619 阅读 · 0 评论 -
VC++预编译头
VC++预编译头,会把常用的头文件放进去编译生成,其它的文件内容修改时,这部分就不需要重新编译了,节省时间。一个stdafx.h文件是不会被编译的,所以增加了一个stdafx.cpp来进行编译。开关:在解决方案管理器中选择项目或者cpp右键->属性->c/c++->预编译头里面可以开关,前者整个项目的设置,后者只设置单个CPP,当单个CPP不需要包含预编译头时,则可以设置单个不开启原创 2011-12-22 22:03:12 · 379 阅读 · 0 评论 -
LINK : warning LNK4098: 默认库“LIBCMTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
以前经常遇到这个警告信息,因为运行并没有什么问题,所以也没深究。但是耿耿于怀那个“ 0 个错误,0 个警告”的成功提示,在网上搜了一下。原来问题出在默认库的引用选择上。 VS2008,项目——属性——配置属性——C/C++——代码生成:他有/MT,/MTd,/Md,/MDd四个选项,你必须让所有使用的库都使用相同的配置,否则就会有相应的提示,甚至可能会出现无法解析的函数。有时我们使用的库不转载 2011-12-07 15:30:22 · 507 阅读 · 0 评论 -
关于时间差的获得需要注意!
如果需要获得时间差,可以获得新的当前时间-旧的时间=时间差,这点做法 有点不好的是,如果在运行期间,系统的时间改变了,例如时间更新,或者其它软件更改了系统时间,以及其它的未知因素,总之就是改变了时间,那么该方法得到的结果就不正确。可以使用GetTickCount方法来获得系统开启到现在为止的时间,这个的好处是,不随系统时间的变化结果而受到影响,不好的是,如果运行操作49天,那么该方法得到的结果原创 2011-11-09 11:21:19 · 304 阅读 · 0 评论 -
STL中map用法详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一 种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识转载 2011-11-09 13:19:38 · 337 阅读 · 0 评论 -
进程同步
m_pszExeName="xxx"; //只能保证在同一个用户中//m_pszExeName="Global\\xxx" //所有的用户只能有一个这样的实例// 用应用程序名创建信号量 HANDLE hSem = CreateSemaphore(NULL, 1, 1, m_pszExeName); // 信号量已存在? //原创 2011-11-02 10:55:27 · 275 阅读 · 0 评论 -
为什么万年历中1752年9月少了11天呢?
今天在Linux系统中使用字符命令查看万年历,突然发现1752年9月份少了11天,感觉很奇怪!难道是万年历出错了?还是历史上根本就没有那几天?还是我的机子出现了问题?总之猜测了一切的可能,可都是没有依据的猜测!大家也可以试试,看看效果,也许你会因此对Linux产生兴趣呢!#c转载 2011-10-08 11:00:22 · 941 阅读 · 0 评论 -
在windows中获得星期几等时间
#include #include int main( void ){SYSTEMTIME sys;GetLocalTime( &sys );printf( "%4d/%02d/%02d %02d:%02d:%02d.%03d 星期%1d\n",sys.w原创 2011-10-08 10:51:21 · 428 阅读 · 0 评论