站内搜索

cocos2d-x在Win32下使用Sqlite正常在Android真机上闪退

cocos2d-x在Win32下使用Sqlite正常在Android真机上闪退,调试发现CCLog输出发现找不到表,猜测是没找到数据文件,查了下,发现在 Android不能读取的原因,是因为对数据库的操作必须有root权限,也就是说,我们的应用程序只能对系统提供的特定目录中的数据库文件进行操作。这特定可写目录可以通过 下面语句获得


//可写目录
CCFileUtils::sharedFileUtils()->getWritablePath()
//拷贝前判断是否已经拷贝过
CCFileUtils::sharedFileUtils()->isFileExist(path...

        

C++下使用WebBrowser进行网站自动登录

登录网站有两种方式,一种是采用URL提交的方式,另外一种采用POST数据的方式,鉴于很多网站的登陆在提交后有多站认证及多次跳转,采用HTTPOPENREQUEST等API的方式无法满足要求,还是要采用WebBrowser的方式模拟登陆。
   
   本文是WTL方式的WebBrowser。


   1.定义浏览器变量
   
   CAxWindow browserWindow;  
   CComPtr<IWe...

六种排序的C++实现

class SortNum   
{  
public:  
 SortNum();  
 virtual ~SortNum();  
    void exchange(int& b,int& c);//交换数据  
    void listout(int a[],int n);//列出所有  
 void selectSort(int a[],int n);//选择  
 void bublbleSort(int a[],int n);//冒泡  
 void insertSort(int a[],int n);//插入  
 void baseSort(int a[],...

        

C++析构函数

析构函数(destructor)也是一个特殊的成员函数,它的作用与构造函数相反,它的名字是类名的前面加一个“~”符号。
在C++中“~”是位取反运算符,从这点也可以想到:析构函数是与构造函数作用相反的函数。当对象的生命期结束时,会自动执行析构函数。
具体地说如果出现以下几种情况,程序就会执行析构函数:
①如果在一个函数中定义了一个对象(它是自动局部对象),当这个函数被调用结束时,对象应该释放,在对象释放前自动执行析构函数。
②static局部对象在函数调用结束时对象并不释放,因此也不调用析构函数,只在main函数结束或调用exit函数结束程序时,才调用static局部对象的析构...

        

C++内联函数

(1)什么是内联函数?
内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内。
(2)为什么要引入内联函数?
当然,引入内联函数的主要目的是:解决程序中函数调用的效率问题。另外,前面我们讲到了宏,里面有这么一个例子:
#define ABS(x) ((x)>0? (x):-(x))
当++i出现时,宏就会歪曲我们的意思,换句话说就是:宏的定义很容易产生二意性。
  
我们可以看到宏有一些难以避免的问题,怎么解决呢?前面我们已经尽力替换了。
下面我们用内联函数来解决这些问题。
(3)为什么inline能取代宏?
1、 inline 定义的类的内联函数,函...

        

C++友元函数

友元函数和友元类的需要:
    类具有封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的。非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型检查和安全性检查等都需要时间开销,而影响程序的运行效率。
  为了解决上述问题,提出一种使用友元的方案。友元是一种定义在类外部的普通函数,但它需要在类体内进行说明,为了与该类的成 员函数加以区别,在说明时前面加以关键字friend。友元不是成员函数,但...

        

C++友元类

当一个类B成为了另外一个类A的“朋友”时,那么类A的私有和保护的数据成员就可以被类B访问。我们就把类B叫做类A的友元。
友元类可以通过自己的方法来访问把它当做朋友的那个类的所有成员。但是我们应该注意的是,我们把类B设置成了类A的友元类,但是这并不会是类A成为类B的友元。说白了就是:甲愿意把甲的秘密告诉乙,但是乙不见得愿意把乙自己的秘密告诉甲。
声明友元类的方法其实很简单,只要我们在类A的成员列表中写下如下语句:
friend class B;
  这样一来,类B就被声明成了类A的友元。注意,类B虽然是类A的友元,但是两者之间不存在继承关系。这也就是说,友元类和原来那个类之间并没有什么...

C++ ->是什么?

->指向类的指针,叫类指针,例如下面通过MyClass 类的指针pPointer 访问MyClass 类的成员变量
class MyClass
{
public:
int m_Number;
char m_Character;
};
void main()
{
MyClass *pPointer;
pPointer = new MyClass;
pPointer->m_Number = 10;
pPointer->m_Character = 's';
delete pPointer;
}
 

作用域运算符::是什么?

::是C++里的“作用域运算符”。
比如声明了一个类A,类A里声明了一个成员函数void f(),但没有在类的声明里给出f的定义,那么在类外定义f时,就要写成void A::f(),表示这个f()函数是类A的成员函数。
:: 一般还有一种用法,就是直接用在全局函数前,表示是全局函数。当类的成员函数跟类外的一个全局函数同名时,在类内定义的时候,打此函数名默认调用的是本身的成员函数;如果要调用同名的全局函数时,就必须打上::以示区别。比如在VC里,你可以在调用API函数时,在API函数名前加::。

什么是指针?C++指针

这是一篇我所见过的关于指针的最好的入门级文章,它可使初学者在很短的时间内掌握复杂的指针操作。虽然,现在的Java、C#等语言已经取消了指针,但作为一个C++程序员,指针的直接操作内存,在数据操作方面有着速度快,节约内存等优点,仍是很多C++程序员的最爱。指针就像是一把良剑,就看你怎么去应用它!
 
什么是指针?
  其实指针就像是其它变量一样,所不同的是一般的变量包含的是实际的真实的数据,而指针是一个指示器,它告诉程序在内存的哪块区域可以找到数据。这是一个非常重要的概念,有很多程序和算法都是围绕指针而设计的,如链表。
开始学习
  如何定义一个指针呢?就像你定义一个其它变量一样,只不过你要在指...