extern "C"的一点细节 #ifdef __cplusplusextern "C" {#endif很多时候看到以上代码并没有太在意,其实这个宏是必须存在的。如果不加,用C的编译器编译包含这条语句(该语句一般都是放在头文件中,而这个头文件会被.c和.cpp文件同时包含),则会报错,因为只有C++的编译器才认识 extern "C"
解决NDK *** note: the mangling of 'va_list' has changed in GCC 4.4 ndk-build提示:D:/aDeveloper/ndk/android-ndk-r8b/platforms/android-8/arch-arm/usr/include/jni.h:592:13: note: the mangling of 'va_list' has changed in GCC 4.4如.........什么note: the mangling of 'va
Git工具连接GitHub(Windows配置篇) http://blog.csdn.net/a2657222/article/details/8363640一、准备工具1.下载Git Extensions。地址 http://code.google.com/p/gitextensions/downloads/list 请下载最新版本。2.下载Tortoisegit。地址 http://code.google
cocos2dx在IOS中设置横竖屏 IOS目录中RootViewController.mm//显示竖屏- (BOOL) shouldAutorotate { return NO;}//显示横屏- (BOOL) shouldAutorotate { return YES;}http://blog.csdn.net/tt5267621/article/details/893183
VC控制台程序不显示控制台 http://bbs.csdn.net/topics/380247251大家都知道,当编写一个win32 console application时,当运行此类程序的时候默认情况下会有一个类似dos窗口的console窗口,但是有的时候我们只想在程序中运行一段功能代码,不希望显示这个console窗口,让代码执行完毕之后程序自动退出.下面就介绍一下,如何隐藏win32 console
WP7中水平ListBox和TiltEffect的使用 1.ListBox默认是垂直的,如果想实现水平的ListBox,代码如下: <ListBox Name="popupBkgd_listBox" ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.Ve
在XAML中使用数字类型资源 add to the head of the xamlfilexmlns:System="clr-namespace:System;assembly=mscorlib"Then Add to the resouce section: x:Key="theMargin">2.35Last, use a thickness on the margin: Content="N
Android配置NDK及cocos2d-x的安卓sample编译 配置NDK:1.添加jre的bin到环境变量中,以使能够使用javah命令2.添加G:\Program Files (x86)\Android\android-sdk\platforms\android-XX\android.jar(android的class包)到环境变量的classpath中,以使javah能找到Activity等类(否则在使用javah命令时,有可能会包找不到Ac
A* bug记录 1.一直把close集合设计成了一个普通set,导致insert进去的元素不一定是插入到末尾,这样从末尾便利就会出现问题,可以把close集合改成listps,更好的一种方式可能还是使用set(可以很简单的判断一个元素是否在close中,用contain之类的方法),在最后,找出(dest_x,dest_y)作为头结点就可以了
移植VC6工程到VS时for循环出错解决方案 很早就遇到的一个问题,这次遇到又记不清楚如何解决了,记录一下VC6在处理for循环即没有用C++(99)的标准(太老了),也没有使用的是C(89)的标准,而是自己搞了一个很诡异的标准,导致如下代码居然可以编译通过for(int i = 0;i {....}....for(i = 0;i {...}升级到VS之后自然这种龌龊的写法就行不通了
剖析cocos2d-x之Action实现 稍微了解cocos2d-x的朋友应该都知道cocos2d-x里面的动作都是通过CCAction的各种派生类来实现的。比如我要将一个Sprite在1秒内从(0,0)移动到(400,400)pSprite->setPosition(ccp(0,0));CCMoveTo* moveTo = CCMoveTo::create(1.0f,,ccp(400,400));pSprite->run
CCAnimation直接create报错分析 今天用CCSpriteFrame载入一张包含多个动画帧的图片时候,出现了一些问题,代码如下 CCSpriteFrame* frame0 = CCSpriteFrame::createWithTexture( texture, CCRectMake( 0, 0 * MOVE_TILE_SIZE, MOVE_TILE_SIZE, MOVE_TILE_SIZE )); CCSpriteFram
在VS2005环境中编译COCOS2D-X 今天在别人得电脑上需要使用cocos2d-x,该电脑上目前只安装了VS2005,没有cocos2d-x直接支持的VS2008,2010和2012,所以,需要手动修改sln文件,使vs2005也可以编译(由于我修改了VS2008的工程文件,所以图标已经改变了)1.用文本编辑器打开cocos2d-win32.vc2008.sln将第一行Format Versio
D3DX常用工具函数 http://www.cnblogs.com/lancidie/archive/2011/03/22/1991316.htmlD3DXCOLOR* D3DXColorAdd //两个颜色的组合值D3DXCOLOR* WINAPI D3DXColorAdjustContrast( //调整颜色对比度D3DXCOLOR *pOut,const D3DXCOLOR
自己实现的一个简易Ogre开发框架 AppFrame.h/* ===================================================== */// // ◢█████◣ ◢██████◣// ◢◤ ◥◣ ◢◤ ◥◣ // ◤ ◥◣ ◢◤
在Ogre中使用OIS相应键盘事件 紧跟上一节的Ogre最小系统,这次添加键盘相应事件到系统中(鼠标和键盘十分相似,这里就没有列出了)/* ===================================================== */// // ◢█████◣ ◢██████◣// ◢◤ ◥◣ ◢◤
Ogre最简单的系统 OgreSDK的环境配置这里不谈,大家可以在网上找到很多文章这里只列出构建一个Ogre最最简单的系统所需要的代码/* ===================================================== */// // ◢█████◣ ◢██████◣// ◢◤ ◥◣ ◢◤
realloc,calloc和HeapReAlloc区别 以上都是用来分配内存的函数,其中第一个和第三个用法非常接近,第二个较少使用,但有其自身有点,可自动初始化内存/* ===================================================== */// // ◢█████◣ ◢██████◣// ◢◤ ◥◣ ◢◤
开源端口查看器——PortMon 自己写的一个小工具,利用“netstat -an”命令重定向到GUI,实现定时刷新窗口信息开源地址:https://github.com/wangxu627/pptoolkit#pptoolkit 在branch:PORTMON上面,欢迎大家交流使用
C#创建进程并重定向标准输出 static void Main(string[] args) { Process p = new Process(); p.StartInfo.FileName = "netstat"; p.StartInfo.Arguments = "-an"; // 如果要重定向输
平衡树(AVL)实现时注意的一些东西 1.概念 1.AVL树必须满足是一棵二叉查找(排序)树 2.任意节点左右子树高度差不能超过12.插入操作插入操作有可能让树不满足第二条规则,那么必须旋转树。有四种旋转方式1.单次左旋(左旋可以理解为旋转左边的孩子,右旋同理) ----> 在节点的左孩子左子树上插入,高度差 = 22.先右旋,
cocos2d-x使用CCControlButton的一些问题 1,默认是没有包含这些Extension的路径的,需要自己include到工程属性里面。以我的机器为例,包含到G:\cocos2d-2.0-x-2.0.4\cocos2d-2.0-x-2.0.4\extensions这里就OK了2,使用CCControlButton* button = CCControlButton::create("Click Me","Helvetica",12);
lua调用的C函数的返回值 http://hi.baidu.com/soulshape/item/760d2322738f71d6a417b6e9 lua调用的C函数的返回值只是表明有多少个返回值,真正的返回值是存储在Lua的栈上的。lua会跟据C函数的返回值,到栈上取值将其返回.比如:static int fun(lua_State *L){//...return 1;}表示有一个返
关于Ogre载入资源时的一些总结教训 1,Ogre载入资源有两种方式,一种是通过配置文件,二种是通过代码直接add第一种方式ConfigFile cf;cf.load("E:\\TDDOWNLOAD\\TestOgre\\resources_d.cfg");Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator();Ogre::String se
读书——2013 1.1 - 1.18:《 boost程序库探秘》,《Boost程序库完全开发指南》http://blog.csdn.net/rabbitlbj/article/details/8507391
COCOS2DX学习笔记(一) windows下cocos2d-x的环境配置 最近开始在学习COCOS2D-X游戏引擎,算是自己回归游戏开发的第一步吧,准备把期间的所学所感都记录下来,算是对自己的一个见证。1.首先当然是cocos2d-x的下载:http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Download,我下载的版本是cocos2d-2.0-x-2.0.4这个版本,下载好后解压到一个目录即可
关于enum指定数据类型 1.enum的默认初始值是0,默认类型是int 2.由于某些特殊可能想改变enum的默认类型,比如节约空间,或者长度太大(特别是需要指定某些值的情况,比如0x00001,0x0010,0x0100这种)写法是 typedef unsigned char Enum_Type;enum{Enum_A,Enum_B,Enum_C,.....};
编译CEGUI步骤 1.从官网下载CEGUI源码和DEPS依赖文件网址是http://www.cegui.org.uk/wiki/index.php/Main_Page,另外我下的是0.7.7版,就两个文件CEGUI-0.7.7.zip,CEGUI-DEPS-0.7.x-r2-vc9.zip(根据你的VS版本,依赖可能下载的不同),之后解压,不多说了2.进入CEGUI-0.7.7\projects\p
通过dll文件生成lib链接库 大体分成三步:1.通过.dll生成.def文件2.修改生成的.def文件3.通过.def文件生成.lib文件 具体命令如下:1.dumpbin sdl.dll /exports /out:sdl.def(生成.def) 2.编辑.def:主要就是删除所有和函数名有关的文本,只保留如下类似内容EXPORTS (此行需自己添加,下面基本靠删) SDL_A
关于__declspec(selectany)和C++ const链接属性 一般情况下,在头文件中都只是声明带有外部链接属性的变量,真正的初始化都是放到.cpp文件中,否则会产生多重定义错误(如果是static链接属性的则不会) 但是有时候,仅仅因为一个类里面的static变量就必须新建一个cpp文件来初始化他显然有点繁琐,这时候可以在.h文件中初始化,只是要利用__declspec(selectany)例如:class Float{public:
在类中声明其他名字空间的友元类 很久没有用C++写过有一丢丢难度的程序了,概念都快忘记的差不多了,今天想在一个类中声明其他名字空间的友元都弄了好久,特记录下来,以算警醒 情况如下:有两个名字空间NA和NB,在他们中,分别有如下类的定义文件HA.h#pragma once#include using namespace std;// 必须声明下namespace NB{ class CB
通过有线共享无线上网 http://hi.baidu.com/%CE%C4%BE%D9521/blog/item/a0cca20b8222dbbe2eddd428.html以前看到很多说是笔记本通过无线网卡共享上网,我这个要说的是无线网卡笔记本通过有线共享给没有无线网卡的电脑上网。刚才宿舍同学拿了别人的笔记本,我以为笔记本有无线网卡,想通过无线网卡共享给他上网,没想到的是,那个笔记本竟然
VS2008找不到MSVCP90D错误 1,一般用release编译一下就可以解决问题2,如果不行,通常的解决办法网上都有,但是感觉都不好用(1),使用Fat32解决办法(2),不使用增量链接(3),不嵌入清单文件(4),运行库设置3,如果以上办法尝试过但都不好使,那该会以前的默认,rebuild应该自己就OK了
红黑树的几个基本性质 红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求: 性质1. 节点是红色或黑色。 性质2. 根节点是黑色。 性质3 每个叶节点是黑色的。 性质4 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点) 性质5
const_cast和static_cast之区别 #include using namespace std;class A{public: int k;};int main(){ const A a = {10}; A b = static_cast(a); b.k = 1000; int stop = 1000; }如此转换后,b为a的一个非const副本,可修改,但a得值不变若改为A b =
cout输出string 必须包含string的头文件,否则不能用cout输出template<class _Elem, class _Traits, class _Alloc> inline basic_ostream& __CLRCALL_OR_CDECL operator<<( basic_ostream& _Ostr, const basic_string& _Str) { // ins
函数调用深度 默认线程栈1MB,用以下代码测试struct Block{ char data[128];};void func(int i){ Block b; printf("%d",i); func(i + 1);}int main(){ func(0);}大概在2800次左右发生栈溢出,感觉还是很深了,一般在栈上分配的变量也不会太大,所以,以后写程序多多使用栈
C#中的相等性 C#中的值类型和引用类型在相等性的判定上是不同的以Object.Equal方法为例,值类型判定的是值相等(及所有成员相等,会在成员上调用递归调用Equal方法);而引用类型默认则是判断引用相等(及两个变量指向托管堆中的同一个对象)先列出值类型基类(ValueType)重写的Equal代码(其中有两个重要的函数有[MethodImpl(MethodImplOptions.InternalCa
VS2010自定义新建文件格式 Microsoft Visual Studio 10.0\VC\vcprojectitems目录下的hfile.h,newc++file.cpp可对新添加的头文件和源文件进行格式自定义Microsoft Visual Studio 10.0\VC#\DesignerTemplates\2052目录下是WinForm项目的自动生成文件Microsoft Visual St
在.net web.cofig文件里配置Access相对路径 目前常见解决方法有2种:1、通过使用 DataDirectory 关键词方法从Asp.net 2.0 开始有App_Data目录来专门存放数据文件,它可以用来放Access,SQL Server Express、XML等数据文件。可以把Access数据库文件放在App_Data文件夹中,然后使用关键词 DataDirectoty来获取路径。 2、在web
.NET四种HTTP服务端常见传输文件方式(通过Response) protected void Button1_Click(object sender, EventArgs e) { //TransmitFile实现下载 /**/ /* 微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWr
使用HLSL实现法线贴图 HRESULT hr = S_OK; LPD3DXMESH pMeshSysMem = NULL, pMeshSysMem2 = NULL; D3DXLoadMeshFromX(L"sphere.x", D3DXMESH_SYSTEMMEM, pd3dDevice, NULL, NULL, NULL, NULL, &pMeshSysMem); VertexModel* pV; pM
使用HLSL实现法线贴图 HRESULT hr = S_OK; g_pArc = new ArcBall();g_pArc->SetWindow(640,480);LPD3DXMESH pMeshSysMem = NULL;D3DVERTEXELEMENT9 decl[]={{0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION
D3D不使用SHADER应用法线贴图 基本上就是SAMPLE里面DOT3PRODUCT的缩水版直接上代码吧,原理很简单,只需要在多重纹理阶段设置成pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_TFACTOR
Box2d教程及实例解析 原文链接:http://gaohaijun.blog.163.com/blog/static/176698271201011289440243/注意: 本教程只适用于BOX2D 2.0以下版本,由于2.0版API的改动,所以有部分代码会并不适用.但是主要思想还是一样的. 一、 HelloWorld 开始之前,我假想你已经看过了HelloWorld的源代码,并看了
裘宗燕:C/C++ 语言中的表达式求值 原文链接:http://topic.csdn.net/u/20110826/09/601EBE9C-C2AE-4D63-A4E2-506C618BB654.html经常可以在一些讨论组里看到下面的提问:“谁知道下面C语句给n赋什么值?”m = 1; n = m+++m++;最近有位不相识的朋友发email给我,问为什么在某个C++系统里,下面表达式打印出两个4,而不是4和5:a
Win32 API参考大全(四) 原文地址:http://blog.pfan.cn/study/1036.html2.2 按钮函数(Button)2.2.1 CheckDlgButton函数功能:该函数改变按钮控制的选中状态。函数原型:BOOL CheckDlgButton(HWNDhDlg,int nlDButton,UINT uCheck);参数:hDlg:指向含有该按钮
Win32 API参考大全(四) 2.2 按钮函数(Button)2.2.1 CheckDlgButton函数功能:该函数改变按钮控制的选中状态。函数原型:BOOL CheckDlgButton(HWNDhDlg,int nlDButton,UINT uCheck);参数:hDlg:指向含有该按钮的对话框的句柄。nlDButton:标识要修改的按钮。uCheck:给定该按钮的选中状态。该参数
使用VS2010在CODEPLEX上进行项目管理 摘要:CodePlex是微软的开源工程网站,涉及诸多微软最新技术的开源工程,同时你也可以建立并向世界展示自己的开源工程。同SourceForge、GoogleCode相比CodePlex有其自身的优势,特别是对做.Net开发的朋友来说,由于CodePlex支持TFS代码控制(当然CodePlex不仅仅支持TFS代码控制,还支持其他方式),而Visual Studio2010自身的Visual
Mercurial与TortoiseHg使用入门教程 Mercurial与TortoiseHg使用入门教程文章来源:http://www.keakon.cn/bbs/thread-1865-1-1.html原文地址:http://www.cnblogs.com/meetrice/archive/2010/07/12/1775707.html分布式版本管理工具当中,Git和Mercurial(意思为水银的,于
VC里移动无标题窗口 自己处理WM_NCHITTEST消息,将如果鼠标点击在客户区则置换为标题栏:LRESULT CMainDlg::OnNchitTest( UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/ ){UINT nHitTest;nHitTest = ::DefWindowProc(m_hWnd,WM_NCHITT
WTL的CFileDialog对话框使用 打开对话框CFileDialog cFilePath( TRUE,NULL,NULL,OFN_PATHMUSTEXIST,_T("VR Files (*.wrl)\0*.wrl\0All Files (*.*)\0*.*\0\0"));WCHAR strBuffer[65535] = {0};cFilePath.m_ofn.lpstrFile = strBuffer;cFilePa
剖析ATL、WTL CString的实现 原文地址:http://www.cnblogs.com/tekkaman/archive/2011/04/20/2022570.html话说CString这个东西困扰了很多年轻人,因为它会引起诡异的编译错误,今天跟着我一起来深入ATL、WTL头文件,来把这个东西搞个清清楚楚。【涉及到头文件】 ATL : atlstr.h, atlsimpstr.h
D3DX数学库函数备份 原文地址:http://www.cnblogs.com/lancidie/archive/2011/03/22/1991316.htmlD3DXCOLOR* D3DXColorAdd //两个颜色的组合值D3DXCOLOR* WINAPI D3DXColorAdjustContrast( //调整颜色对比度D3DXCOLOR *pOut,const D3DXCO
通过OS和FILE类复制文件 import osimport timefilei=os.open("d://mkbird.wav",os.O_RDONLY|os.O_BINARY)fileo=os.open("d://mkbirdcp.wav",os.O_WRONLY|os.O_BINARY|os.O_CREAT)start=time.time()while 1: data=os.read(filei,4096) if not d