C++
daraemon418
这个作者很懒,什么都没留下…
展开
-
boost中shared_lock和unique_lock的区别
简单的说:shared_lock是read lock。被锁后仍允许其他线程执行同样被shared_lock的代码。这是一般做读操作时的需要。unique_lock是write lock。被锁后不允许其他线程执行被shared_lock或unique_lock的代码。在写操作时,一般用这个,可以同时限制unique_lock的写和share_lock的读。例子:voi原创 2012-01-20 06:17:07 · 12160 阅读 · 0 评论 -
一些C/C++的实用HOWTO备忘
--- 怎样判断某一文件是否存在int file_exists(char *filename){ return (access(filename, 0) == 0);}--- 怎样调用外部EXE程序?system("ping 127.0.0.1");--- 创建目录_mkdir()函数--- 双字节ARRAY和单字节ARRAY转换原创 2012-01-20 06:31:53 · 310 阅读 · 0 评论 -
C++ FAQs学习笔记
FAQ 2.11这里的auto_ptr挺有意思。改编了范例程序如下:#include #include using namespace std;class Car{ static int carObjCount; int carObjID;public: Car() { carObjCount++;原创 2012-01-20 06:29:50 · 680 阅读 · 0 评论 -
《Optimizing for SSE: A Case Study》的读后感
这几天想学SSE,读了一些汇编书毫无收获。今天看了《Optimizing for SSE: A Case Study》(http://www.cortstratton.org/articles/OptimizingForSSE.php),终于知道了一些东西。自以为此文堪称经典,难怪GOOGLE上排第一。使用SSE优化程序的几个要点:1、要使用SSE指令和XMM寄存器,一次做4个原创 2012-01-20 06:36:18 · 581 阅读 · 0 评论 -
C语言里求类型BIT数
求unsigned int型数一共有多少bit? int GetTotalBit(void){ unsigned int x = ~0; int n = 0; while (x 〉 0) { n += 8; x 〉〉= 8; } return n;}关键就是将0取反,然后移位.原创 2012-01-20 06:37:32 · 862 阅读 · 0 评论 -
今天学到一个高招
给出一个LoG的SIGMA值,怎么求相应的DoG的两个SIGMA?到GOOGLE上把两个FILTER的计算公式找到,然后解一下...你会崩溃的!下面是我们用的MATLAB程序,计算SIGMA从0.1到2.5步长为0.1的LoG对应的DoG:tab = [];for sigma = 0.1:0.1:2.5; Hlog = fspecial('log', [15 15],原创 2012-01-20 06:42:19 · 431 阅读 · 0 评论 -
切换到64BIT VISTA后VS不能DEBUG的问题
不能DEBUG了! 所有设置的断点在ATTACH到进程后都DISABLE了!琢磨半天未果,问身边的小伙子也搞不定. 今天早上开会汇报时,跟老板说了.老板当时就告诉我:应该是ATTACH时选择Attatch To: 的问题. 我们的软件GUI是用Managed Code, 而核心是Native Code. 所以在DEBUG的时候有两种选择. 32BIT下的VS, 可以用AUTOMATIC原创 2012-01-20 06:43:43 · 353 阅读 · 0 评论 -
向其他机器上的MS message queue发送消息碰到的一个小问题
用 queuePath = @"FormatName:Direct=TCP:" + hostIp + @"\Private$\" + mqName 的方式,发到自己机器上的MSMQ没问题(但要注意IP不能用127.0.0.1),但发到其他机器就是没反应.检查outgoing queue, 发现消息都在那里窝着,状态是waiting to connect. 按这个线索google, 尝试, 最后原创 2012-03-09 02:36:39 · 1020 阅读 · 1 评论 -
使用unique_ptr代替C风格数组的一个例子
使用C风格数组:void COperationsWorkerBase::GetFileViewerDownloadLink(const std::wstring& sSourcePath, std::wstring& sEncPath){size_t nSize = ENCRYPTED_BUFFER_SIZE(sSourcePath.size());TCHAR* sPath原创 2012-06-29 05:26:47 · 2220 阅读 · 0 评论