
C++
文章平均质量分 88
followme163
这个作者很懒,什么都没留下…
展开
-
强制类型转换
关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++ 的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。下面对它们一一进行介绍。static原创 2008-10-23 13:43:00 · 729 阅读 · 0 评论 -
一键编译Boost批处理
set localPath="%cd%"cd /d "%VS100COMNTOOLS%..\..\VC\"call "%cd%\bin\vcvars32.bat"cd /d %localPath%call bootstrap.batbjam --toolset=msvc-10.0 --build-type=complete stage每次编译boost总很麻烦,下面自己设计批处理,方法如原创 2011-08-20 16:45:43 · 780 阅读 · 0 评论 -
sqlite3.7.16.2 支持加密编译
1.源码: http://www.sqlite.org/download.html1.1 Source Code sqlite-amalgamation-3071602.zip 获取 sqlite3.h sqlite3.c1.2 Precompiled Binaries forWindows sqlite-dll-win32-x86-3071602.zi原创 2013-05-03 10:39:24 · 1860 阅读 · 0 评论 -
使用vector和strchr快速分割字符串
利用STL的vector和模板快速分割字符串原创 2013-12-07 01:26:08 · 1430 阅读 · 0 评论 -
GetTickCount64不可靠
GetTickCount有重置为0的问题,所以用GetTickCount64,在xp下用函数代替GetTickCount64inline __int64 _GetSysTickCount64() { LARGE_INTEGER TicksPerSecond = { 0 }; LARGE_INTEGER Tick; if (!TicksPerSecond.QuadPart)原创 2014-04-03 10:24:10 · 31101 阅读 · 6 评论 -
我所理解的 c++虚函数
我理解的虚函数曾经在微博看到大牛说道,面试c++能力,虚函数能摆谈一个小时就是不错的。先列出问题。1. c++中的关键词角度Virtual 函数,纯虚函数,虚继承 。2. 面向c++对象模型角度 看待虚函数3. 虚函数的使用角度 结合ctor ,dtor等等4. 高级主题,简要说明虚函数的优点、缺点5.高级主题,请举例说转载 2014-08-27 13:18:07 · 1072 阅读 · 0 评论 -
window逆向源码
http://zh.wikipedia.org/wiki/ReactOSReactOS是一个开发与Windows NT和Windows 2000 应用程序、硬件驱动程序兼容的开源操作系统项目。本项目目前虽然只是处于内部测试(alpha)开发状态,但到2005年1月其中一些子项目已经完成了目标。ReactOS主要是由C语言编写。部分组件则由C++编写,例如ReactOS文件浏览器原创 2014-10-19 13:00:48 · 1915 阅读 · 0 评论 -
centos 编译 zeromq
https://www.javacodegeeks.com/2015/09/how-to-configure-and-install-zeromq-libsodium-on-centos-6-7.html Steps to a working ZeroMQ 4+ code on CentOS67# Login as root or make sure you have sudo acc转载 2016-03-09 21:04:22 · 1417 阅读 · 0 评论 -
在Centos上运行不同版本C++运行库的解决办法
来由:生产环境的Centos6.4,gcc 4.4.7,不支持C++11,如果全部升级gcc费劲,尝试以下办法解决1.在centos6.4虚拟机上编译gcc5.3.0,安装在/usr/local/gcc-5.3.0目录下2.写CMakeList文件,修改rpath目录为运行目录,具体内容是CMAKE_MINIMUM_REQUIRED(VERSION 2.6)project(tes原创 2016-04-10 02:11:27 · 4323 阅读 · 0 评论 -
centos编译libcurl库找不到ssl的问题
下载ssl,编译安装,然后下载libcurl执行./configure --with-ssl=/usr/local/ssl/SSL support: no (--with-{ssl,gnutls,nss,polarssl,mbedtls,cyassl,axtls,winssl,darwinssl} )发现ssl默认只编译了静态库,没有动态库,所以编译ssl的时候原创 2016-04-30 21:45:29 · 5982 阅读 · 0 评论 -
让Duilib完美支持gif
gif困难:duilib对gif本身没有支持,一些开源的通过GDI来做,Demo没有went原创 2014-09-02 13:13:05 · 7247 阅读 · 7 评论 -
VC2010新增加对多线程的支持类
临界区的类:Concurrency::critical_section; 相对应的自动加解锁类 Concurrency::critical_section::scoped_lock读写问题Concurrency::reader_writer_lock;写对应的自加解锁Concurrency::reader_writer_lock::scoped_lock;读对应的自加解锁Concurrency原创 2011-11-22 23:00:54 · 2378 阅读 · 0 评论 -
sqlite3.7.9 VC2010编译说明
1.sqlite-src-3070900.zip src目录,执行del test*.* tclsqlite.c,lempar.c 其它都需要获取ext\rtree目录下rtree.c rtree.h sqlite3rtree.h2.sqlite-dll-win32-x86-3070900.zip 获得sqlite3.def3.sqlite-prepro原创 2011-11-25 18:37:36 · 1929 阅读 · 0 评论 -
C++ Boost Thread 编程指南
0 前言标准C++线程即将到来。CUJ预言它将衍生自Boost线程库,现在就由Bill带领我们探索一下Boost线程库。就在几年前,用多线程执行程序还是一件非比寻常的事。然而今天互联网应用服务程序普遍使用多线程来提高与多客户链接时的效率;为了达到最大的吞吐量,事务服务器在单独的线程上运行服务程序;GUI应用程序将那些费时,复杂的处理以线程的形式单独运行,以此来保证用户界面能够及时响转载 2011-11-04 14:40:04 · 561 阅读 · 0 评论 -
绝对能够测试你的C语言功力的几个问题!
另外,在实际的VC++教学中,发现很少有真正精通了C语言编程的学员,一般都有或多或少概念不是完全清楚的问题,特别是一些需要丰富的实战经验才能体会和明白的问题,如字符串,指针,类型转换,定义指向函数的指针类型,这也是导致学习 VC++困难的一个原因。下面有几个简单测试将能发现你对C语言的掌握情况。int x=35;char str[10];//问:strlen(str)和size原创 2008-10-31 12:46:00 · 803 阅读 · 0 评论 -
STL Set 交集 合集 差集
set是关联容器。其键值就是实值,实值就是键值,不可以有重复,所以我们不能通过set的迭代器来改变set的元素的值,set拥有和list相同的特性:当对他进行插入和删除操作的时候,操作之前的迭代器依然有效。当然删除了的那个就没效了。set的底层结构是RB-tree,所以是有序的。 stl中特别提供了一种针对set的操作的算法:交集set_intersection,并集set_union,差原创 2009-01-09 14:53:00 · 26968 阅读 · 1 评论 -
如何通过FILE*操作内存文件
原帖:http://www.360doc.com/content/080927/09/59579_1682339.html/*问题概述: 有这样一个第三方的库函数void WriteDataToFile(FILE* pFile),它是向一个文件写入数据。 现在需要通过函数WriteDataToFile生成临时数据,但不能生成磁盘文件(需要在内存中操作)。 然后通过某种方式读取内存中的数据转载 2009-03-02 13:57:00 · 2085 阅读 · 0 评论 -
VC6中使用STLPort4.6.2
编译就不说了, 网上这方面的文章很多 ********************************************如果和PlatformSDK 一起使用的话要记的在STLport目录中 /stlport/stl_user_config.h 文件中把这一句打开 # define _STLP_NEW_PLATFORM_SDK 1 否则在编译时会有如下错误secon转载 2009-08-17 13:33:00 · 1036 阅读 · 0 评论 -
探索WTL和MFC混合使用的问题,兼容VC2010编译器
<br /> MFC和WTL写界面都有优缺点.MFC编程快速,WTL灵活.目前工作是为了实现即时通信的UI,但是一些特效用MFC实现是相当困难的,例如对话框针对控件的分隔条.但是WTL则处理的相当好,但是两者一般是不能混合编程的.<br /> 探索几天,公布试验结果,整理下预编译包含文件的顺序<br /> 注意:<br /> 1.必须用ATL的CString,否则,不管你怎么折腾,MFC/WTL/ATL总是出现两两冲突,因为ATL/MFC/WTL都有CString的实现,且M原创 2011-05-07 18:30:00 · 3418 阅读 · 1 评论 -
TCHAR 与 STD::string 之间的若干问题
TCHAR 与 STD::string 之间的若干问题我经常在 C++ 程序中使用标准模板库(STL)的 std::string 类,但在 使用 Unicode 时碰到了问题。在使用常规 C 风格的字符串时,我可以使用 TCHAR 和 _T 宏转载 2011-08-18 22:42:34 · 1484 阅读 · 0 评论 -
获取重载函数地址的问题
多态函数名相同,参数不同,但是引用其地址是直接告诉编译器名字,无法区分是哪一个函数,怎么办呢,看如下代码,测试通过:class A{public: void Lock(){} void UnLock(){cout};void UnLock(int *a){}void UnLock(A *a){a->UnLock();}int _tmain(int原创 2011-10-23 00:09:52 · 737 阅读 · 0 评论 -
运行时如何获取运行当前代码所在的函数,一个神奇的宏
int _tmain(int argc, _TCHAR* argv[]){ cout<<__FUNCTION__<<endl; cout<<__FUNCDNAME__<<endl; cout<<__FUNCSIG__<<endl;}输出wmainwmainint __cdecl wmain(int,wchar_t *[])原创 2011-10-23 00:26:52 · 869 阅读 · 0 评论 -
字符串逻辑比较函数---StrCmpLogicalW的模拟实现
我们最熟悉的字符串比较函数莫过于strcmp了,但这个函数仅仅是根据字符进行比较,没有考虑字符串的逻辑意义,为此微软为我们提供了一个StrCmpLogicalW函数,它比较数字时不将其视为文本而是视为数值。我们可以从下列这个简单的字符串数组排序的结果看出这两个函数的区别:使用StrCmpLogicalW进行比较的结果:2string3string20stringst2r转载 2011-11-02 14:33:44 · 1525 阅读 · 1 评论 -
VC2010增加对并发的支持 笔记一
struct DoWrite{ DoWrite(Concurrency::critical_section &cs,std::list &List,volatile bool &bRun):_cs(cs),_List(List),_bRun(bRun) {} void operator()() const { for(;_bRun;Sleep(100)) { Concurr原创 2011-11-24 00:14:33 · 1010 阅读 · 0 评论 -
weak bind的std实现
弱bind实现,防止function是成员的时候,bind shared_from_this 形成自引用,导致内存泄露。#include #include #include namespace stdx = std;templateclass Weak_Binder0{ typedef stdx::weak_ptr WP; typedef stdx::shared_ptr原创 2017-06-25 03:31:17 · 1332 阅读 · 0 评论