随笔分类 - C++
摘要:关于Visual Studio 2013 编译 multi-byte character set MFC程序出现 MSB8031 错误的解决办法打开以前的项目重新编译时出现了如下问题:错误 1 error MSB8031: Building an MFC project for a non-Unicode character set is deprecated. You must change the project property to Unicode or download an additional library. See http://go.microsoft.com/fwlink
阅读全文
摘要:这里的磁盘就是你的C,D,E,F,G盘啦那么来看看吧windows Api来获取信息的呢(1)DWORD GetLogicalDrives(void)返回值是一个32位整形32位每一位表示一个对应的驱动器是否存在,第2位是1表示B:存在。。(2)DWORD GetLogicalDriveStrings(DWORD nBufferLength,LPTSTR lpBuffer);nBufferLength:指向内存的大小(简单来说就多少个CHAR)lpBuffer:存储返回结果字符串的内存空间(简单来说CHAR的位置)返回值:表示是否成功,成功返回缓冲区中返回结果的总长度.如果返回值大于第一个参数
阅读全文
摘要:1关于C++ Layer的内存回收机制Android C++层的内存收回主要是通过三个类来实现,分别是RefBase,sp,wp;SP和WP是两个智能指针模板类,sp是strong pointer,wp则是weak pointer,亦我们常说的强引用和弱引用;实例化sp和wp这两个模板类的类型必须是派生自RefBase的类1.1 RefBase类因为这个类拥有对内存回收机制的默认实现,所以android上想要支持内存回收机制的类必须派生自RefBase下面简单介绍下成员变量和成员函数:mRefs:weakref_impl对象,派生于RefBase::weakref_type, 包含了对str.
阅读全文
摘要:发现个开源很好的C++框架库,共享一下网址:http://www.codeproject.com/KB/cpp/SystemFramework.aspx介绍: IntroductionStandard native C++ does not have a true object-oriented garbage collector, object-oriented function pointers (delegates), truly object-oriented exception handling, and object-oriented multithreading system.
阅读全文
摘要://Hex转BCD码#defineHEX2BCD(x)(((x)%10)+((((x)/10)%10)<<4))/*20->20H*///按照LSB格式把两个字节转化为一个word#defineFLIPW(ray)((((word)(ray)[0])*256)+(ray)[1])//按照LSB格式把一个word转化为两个字节#defineFLOPW(ray,val)(ray)[0]=((val)/256);\(ray)[1]=((val)&0xFF)//得到一个字的高位和低位字节#defineWORD_LO(xxx)((byte)((word)(var)&25
阅读全文
摘要:#pragmaonce//锁接口classILock{public:virtual~ILock(){}virtualvoidLock()=0;virtualvoidUnlock()=0;};/************************************************************************//*CRITICAL_SECTION*//************************************************************************/classCriticalSectionLocker:ILock{publ
阅读全文
摘要:Qt下的属性控件QtPropertyBrowser在Google中资料很少,而且在很多介绍的文章里的下载地址都指向了QtMobility,这个东西跟非手机平台没有太大关系。找了很久,发现在http://qt.nokia.com/downloads页面的右下角有一个FTP链接:ftp://ftp.qt.nokia.com/提示也写着在这里可以下载到以前的一些Qt包在里面终于可以找到qtpropertybrowser-2.5_1-opensource.zip下载后,用VisualStudio的Qt插件打开pro,有例子有设置好的工程,还愁文档么,呵呵
阅读全文
摘要:网上流传的一份常见C++笔试题目汇总,供各位有找工作需要的同学参考之用,因为原文较长,遂采用连载形式,预计需要连载15期左右,有耐心的同学就请一直跟下去吧,相信一定会有所收获。提前说明一点,题目来在网络,答案仅供参考,如有同学觉得哪道题目有异议,欢迎讨论!1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?virtual修饰符会被隐形继承的。private 也被集成,只事派生类没有访问权限而已。virtual可加可不加。子类的空间里有父类的所有变量(static除外)。同一个函数只存在一个实体(inline除外)。子类覆盖它的函数不加virt
阅读全文
摘要:1.C++0X 多线程简介 C++0x STL提供了对多线程的支持就不用再去选择跨平台的多线程库了,用标准的吧:) 看了一下BOOST和当前STL的接口几乎完全一致:)也就是说用boost thread写的程序应该把例如boost::thread, boost::unique_lock ...等等的地方换成std::thread, std::unique_lock...就OK了,个人觉得,不过我还没用过boost thread.所以说熟悉pthread的应该能很快上手,而熟悉boost thread应就可以直接上手了~ 但是现在GCC还不支持thread local变量。不支持原子操作...
阅读全文
摘要:一般来说对于标准C++而言是不存在成员属性这个概念的,以前大家都是用GetXXX/SetXXX来访问或取得数据,好象也没有感觉到任何不便。但是当我们用过C#之类的语言之后,我们总觉得C++这个方式太老土了。于是我们想去实现“属性”这个C++语言缺乏的要素。事实上网络上有很多人已经做了这部分工作,实现的方法有很多种,一种是用模板,一种是根据特定语言来写的,如VC(指的是Microsoft实现的C++)。但是它们要么很复杂,要么很难记住它的准确用法,嗯我总是喜欢简单的东西,因为太复杂的东东会让我的头脑当机。废话少说,来看看如何实现。 在实现之前,我必需先探讨一下为什么需要“属性”这个东东。...
阅读全文
摘要:C++的四个类型转换运算符已经有很久了,但一直没有弄清楚它们的用法,今天看到一本书上的解释,才大致地的了解了其具体的用法。 具体归纳如下: reinterpret_cast 该函数将一个类型的指针转换为另一个类型的指针。 这种转换不用修改指针变量值存放格式(不改变指针变量值),只需在编译时重新解释指针的类型就可做到。 reinterpret_cast 可以将指针值转换为一个整型数,但不能用于非指针类型的转换。 例: //基本类型指针的类型转换 double d=9.2; double* pd = &d; int *pi = reinterpret_cast(pd); //...
阅读全文
摘要:今天使用log4cplus在MFC调用时老发现关闭程序出现大面积的内存泄露。真操蛋,控制台没问题。官方有人说是 微软工具检测的问题,并非内存泄露。搜索一老外网页http://stackoverflow.com/questions/696321/best-logging-framework-for-native-c发现一老外的评论I'm looking also for the same thing. So far I evaluated: log4cplus - nice API, easy build, but memory leaks. The author does not ca
阅读全文
摘要:#include<time.h>#defineBEGIN_COUNT(mark)__int64__begin_count##mark;\QueryPerformanceCounter((LARGE_INTEGER*)&__begin_count##mark);\#defineEND_COUNT(mark)__int64__end_count##mark;\QueryPerformanceCounter((LARGE_INTEGER*)&__end_count##mark);\__int64__Frequency##mark;\QueryPerformanceFreq
阅读全文
摘要:#defineSINGLETON_CLASS_NO_DEF_CONSTRUCT_BODY(class_name)\private:\class_name();\class_name(constclass_name&);\class_name&operator=(constclass_name&);\public:\staticclass_name&Instance()\{\staticclass_nameone;\returnone;\}#defineSINGLETON_CLASS(class_name)\private:\class_name(){}\clas
阅读全文

浙公网安备 33010602011771号