C Plus Plus
文章平均质量分 82
zssure
从不抽烟,应酬时喝酒,早睡早起。一个喜欢折腾自己的人,一个连续创业的劳动者,做过很多事,想过很多事,看破不说破是自省,看破也说破是成长。
展开
-
完成端口学习笔记(二):完成端口实现机制的仿真
上一篇关于“完成端口”的文章中,我们讲解了在同一个控制台程序中完成本地文件的拷贝,利用的是ReadFile和WriteFile两个API函数。本篇将讲解一下怎样利用完成端口来完成网络文件的拷贝,即通过网络将客户端的文件传输到服务端。只要用过Windows套接字编程的人都可以很容易的实现这个转换过程。本博文中首先直接给出利用完成端口来实现文件网络传输的核心示例代码,然后通过解决上述过程“内存泄露”问原创 2014-01-04 17:59:31 · 5708 阅读 · 0 评论 -
两个比较容易混淆的概念:Default Memberwise Initialization和Bitwise Copy
一、首先要分清楚这两者之间的关系:两个概念属于不同“集合”(但有部分交集)。1. Default Memberwise Initialization是与user defined Initialization相对应的。是从编译器(计算机)与程序员(用户)的角度出发;2. bitwise copy 是与memberwise copy相对应的。是两种不同的拷贝方式,编译器通常为了效率会选择bit原创 2012-06-27 15:02:36 · 5551 阅读 · 5 评论 -
有关C来存储BLOB数据(SAFEARRAY结构)
来自百度的博文:http://hi.baidu.com/luoshengwen/blog/item/8932830ad81cd91f95ca6b3e.html vc进行图片的数据库存储2007-03-10 11:271 前言数据库在实际的开发过程中常常需要存储较大的二进制数据对象,如图像、音频文件、视频文件或其他二进制数据,这些数据称之为二进制大对象BL转载 2012-05-30 10:50:39 · 1617 阅读 · 0 评论 -
vs2008调试工具之《内存》
VS2008的调试工具之内存查看: 往往在程序编写过程中会出现中断、溢出等等的错误,;或者出现程序中的数组、结构体、类等组合类型数据没有按照指定的思路输出或者传递等问题,这些错误往往都是由于内存指针控制出问题导致的,然而VS2008为我们提供了一个很好地查看工具,只要稍微懂一下汇编和ANSI/UNICODE编码问题,就可以自由查看内存空间中的内容,进行程序调试。下面我节选了几张图片,供大原创 2012-05-24 15:43:38 · 3721 阅读 · 0 评论 -
case语句跳过变量初始化的问题
今天写程序遇到了一个问题,错误如下:代码如下:switch(m_Radio_Contour) { case 0: //Sobel算子边缘检测 Ptr pImage=NULL; Ptr pImgSobelGray=NULL; Ptr pImg8u=NULL; Ptr pImg8uSmooth=NULL; Ptr pImgColo原创 2012-05-26 13:44:16 · 2601 阅读 · 1 评论 -
ADO编程总结
1)引入ADO库定义文件# import “c:/program files/common files/system/ado/msado15.dll” no_namespacerename (“EOF”,”adoEOF”)使得编译的时候,为我们的工程文件生成两个头文件:msado15.tlh和ado15.tli 注意,msado15.dll的路径可能有所区别,请核对自己的电转载 2012-05-29 08:42:20 · 1397 阅读 · 0 评论 -
算法学习笔记之二:从1到n的正数中1出现的次数
(记)不能说好久没有学习算法了,应该是说好久没有码算法了。很多问题想着想着就理所当然以为就是如此,等真正码起来才会发现问题。所以对待实际算法问题要多“码”一点,能“码”则“码”题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次。题目可原创 2014-03-12 21:07:29 · 3074 阅读 · 1 评论 -
c++ ActiveX基础1:使用VS2010创建MFC ActiveX工程项目
最近在学习ActiveX控件,转载CSDN博文:http://blog.csdn.net/longhuahaha/article/details/8556964?reload1.ActiveX的基本概念ActiveX控件可以看作是一个极小的服务器应用程序,它不能独立运行,必须嵌入到某个容器程序中,与该容器一起运行。这个容器包括WEB网页,应用程序窗体等。。。ActiveX控件的后缀名是转载 2013-07-16 09:59:34 · 2794 阅读 · 0 评论 -
生成随机字符串
原文出处:http://www.rosoo.net/a/201009/10195.html估摸着以后极有可能使用到,于是写了一个生成随机字符串的函数。可以自定义生成规则,生成字符串长度。模仿了MS的函数风格,生成规则使用宏的或且规则,返回值使用了布尔型。这里使用布尔返回可能作用不大。直接贴代码吧,同样是两个文件。RandomString.h#pragma once #defin转载 2012-08-15 21:29:54 · 1321 阅读 · 0 评论 -
21天教你学会C++
原文出处:http://coolshell.cn/articles/2250.html下面是一个《Teach Yourself C++ in 21 Days》的流程图,请各位程序员同仁认真领会。如果有必要,你可以查看这个图书以作参照:http://www.china-pub.com/27043看完上面这个图片,我在想,我学习C++有12年了,好像C++也没有学得特别懂,看到STL和泛转载 2012-08-14 11:20:45 · 4057 阅读 · 0 评论 -
关于常量折叠(转)
首先来看一个例子:int main(int argc, char* argv[]){const int i=0;int *j = (int *) &i;*j=1;coutcoutcoutreturn 0;}结果是0012ff7c0012ff7c01因为i和j都指向相同的内存地址,所以输出的前两个结果是相同的,但为啥相同的内存里的结果不转载 2012-06-18 15:14:10 · 1565 阅读 · 0 评论 -
关于Debug和Release之本质区别的讨论
一、Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。 Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd /转载 2012-06-04 10:46:51 · 1262 阅读 · 0 评论 -
VC++中cl.exe编译器的使用
转自百度博客:http://hi.baidu.com/lingyin55/blog/item/1545ddd08e421895a0ec9cdb.html 和在IDE中编译相比,命令行模式编译速度更快,并可以避免被IDE产生的一些附加信息所干扰。本文将介绍微软C/C++编译器命令行模式设定和用法。1、设置环境变量:PATH=C:\Program Files\Micro转载 2012-05-29 19:03:09 · 13049 阅读 · 0 评论 -
那些编译器和操作系统(os)钟情的填充字节——0xCD/0XDD/0XFD
在利用VS提供的反汇编IDE工具查看内存内容的时候,常常会看到一些似曾相识但却无法知道其出处的内容。下面是我从一个MSDN下面的论坛上看到的一片文章,希望通过此篇文章能够解开大家的疑惑,今后对那些“似曾相识”的内存内容有所了解,并渐渐的开始喜欢上他们。 Value Name Description ------ -------- ----原创 2012-06-22 13:56:00 · 4265 阅读 · 0 评论 -
ADO编程实用宝典
目录ADO编程实用宝典...1目录...1一引入ADO类型库...1二创建与数据库的连接...1三使用_Connection接口...2了解_Connection接口...2使用_Connection接口执行SQL语句...4连接池...4连接字符串...5COM+对象池保存Connection对象...5列集_R转载 2012-05-29 08:41:19 · 1197 阅读 · 0 评论 -
DCMTK开源库的学习笔记1:将DCM文件保存成BMP文件或数据流(即数组)
背景介绍:DCMTK是目前最全面实现DICOM3.0标准的开源库,通过结合DCMTK开源库和CxImage图像开源库,能够很方便的开发属于自己的DCM文件编辑浏览软件。在此利用DCMTK与CxImage两种开源库的结合,可以自由的将dcm文件转换成Jpeg或bmp文件,并且可以自由设置保存后Jpeg或Bmp图片的宽度和高度,实现图片的缩放。原创 2013-04-10 20:47:04 · 17879 阅读 · 38 评论 -
MFC学习之:对话框中的单选按钮(Radio)
本文是在调试工程时的经验总结,或者说是一点工作记录吧。原创 2012-05-26 09:34:46 · 29906 阅读 · 1 评论 -
探讨“临时对象”(temporary object)
MSDN中对VS2012版本的临时对象的说明如下: 在某些情况下,编译器有必要产生临时对象。 当初始化一个常量引用(const reference)时,如果给定的初始化对象类型与目标引用类型不同(但是两者 能够相互转换),需要产生临时对象; 当函数的返回值是用户自定义类型,且程序中未将此返回值拷贝到其他对象中时,需要产生临时对象; 当给定的原创 2012-07-01 19:30:58 · 3916 阅读 · 1 评论 -
一些代码优化的方法
原文出处:http://www.cnblogs.com/wxxweb/archive/2012/01/19/2326355.html 谈到优化,很多人都会直接想到汇编。难道优化只能在汇编层次吗?当然不是,C++层次一样可以作代码优化,其中有些常常是意想不到的。在C++层次进行优化,比在汇编层次优化具有更好的移植性,应该是优化中的首选做法。1 确定浮点型变量和表达式是 float 型转载 2012-05-27 13:10:08 · 1806 阅读 · 0 评论 -
完成端口学习笔记(一):完成端口+控制台 实现文件拷贝
最近在整理手里一个项目的后台服务端归档程序,重新梳理了一下有关“完成端口”的知识,发现还是有很多模棱两可的地方,下面记录一下再次学习的点滴,博文中以一个简单的控制台文件拷贝程序来演示了“完成端口”的内部机制和使用方法,该篇博文还会有后续的补充章节,不知道什么时间会再补充^_^。原创 2013-12-08 20:03:59 · 5710 阅读 · 6 评论 -
Web版PACS开发纪要二:解决文件传输数据“丢失”问题
Web版PACS开发纪要二:DCM文件的网络传输——解决文件传输数据“丢失”问题目录背景介绍问题搜索问题分析问题解决0背景介绍该工程是上个月博文的延续。在利用“完成端口”完成了文件自动归档的基础上,本次需要利用socket套接字进行文件的远距离传输。虽然socket编程的参考书籍很多,但是在具体实现过程中还是遇到了各种各样的问题。下面继续记录一下工作中遇原创 2013-06-08 18:47:17 · 5038 阅读 · 0 评论 -
DCMTK开源库的学习笔记4:利用ini配置文件对dcm影像进行归档
背景介绍:医学影像PACS工作站的服务端需要对大量的dcm文件进行归档,写入数据库处理。由于医学图像的特殊性,每一个患者(即所谓的Patient)每做一次检查(即Study)都至少会产生一组图像序列(即Series),而每一组图像序列下会包含大量的dcm文件(例如做一次心脏CTA的诊断,完整的一个心脏断层扫描序列大约有200幅图像)。DICOM3.0协议中对每一幅影像是按照特定的三个UID(唯原创 2013-04-24 20:52:24 · 7779 阅读 · 1 评论 -
DCMTK开源库的学习笔记3:dcmtk文件中数据元的修改
dcm文件是医学领域DICOM3.0标准所对应的主要的文件格式。前两篇学习笔记中,学习了读取dcm文件的相关信息,如信息头MetaInformation元素、像素数据元素,只停留在了读取和显示dcm文件的阶段,随着学习的深入,自己开发的平台的功能逐渐增加,“修改dcm文件的相关数据元”在所难免。下面将简单的介绍一下对dcm文件的修改,主要的参考资料是:dcmtk开源库的官方文件,另外也很感谢diq原创 2013-04-15 17:53:16 · 10078 阅读 · 22 评论 -
在MFC中从一个线程工作函数中向窗口发送消息(this指针的妙用) .
多线程编程与传统的单线程编程有着很大的区别,尤其是在协调多个线程之间的工作流向的时候,需要考虑变量之间的共享、函数的传递、处理结果的返回,消息的传递等等,偶然在空间中看到了下面这篇博文,写的很精练,应该是工作的经验记录,值得大家学习一下,积累经验,至于深层次的理论知识有待大家自己补充。先转帖到自己空间,供大家学习交流,更是为了留一个印记。博文地址:http://blog.csdn.net/gu转载 2012-09-01 09:02:55 · 6171 阅读 · 0 评论 -
常见C语言内存错误及对策
转自C语言中文网:http://see.xidian.edu.cn/cpp/html/483.html 一、指针没有指向一块合法的内存定义了指针变量,但是没有为指针分配内存,即指针没有指向一块合法的内存。浅显的例子就不举了,这里举几个比较隐蔽的例子。1、结构体成员指针未初始化struct student{ char *name; int score;}s转载 2012-06-03 21:07:24 · 4568 阅读 · 4 评论 -
SAFEARRAY
目录:SAFEARRAY使用实例...1目录:...1前言:...1何谓SAFEARRAY:...1创建SAFEARRAY:2方法一:使用SafeArrayAllocDescriptor在栈上创建一维数组...2方法二:使用SafeArrayAllocDescriptor和SafeArrayAllocData在堆上创建一维数组...2方法三:转载 2012-05-29 08:43:12 · 3141 阅读 · 0 评论 -
MSVC的 未公开开关d1reportAllClassLayout
转自:http://blog.chinaunix.net/uid-53564-id-2099028.html 在看雪学院的 >一文中偶尔看到说VC6.0 以上的编译器支持一个d1reportAllClassLayout的开关, 可以输出所有对象的内存布局信息, 心想我不知道多少次查看过 cl /?的输出, 没印象这个玩艺儿呀, 打开cmd窗口, 弄了个例子程序, 一试不爽.小例转载 2012-05-29 18:46:45 · 2119 阅读 · 1 评论 -
算法学习笔记之四:巧妙运用指针解决链表、字符串、数组等问题(同向双指针VS对向双指针)
链表、字符串和数组一直是很多互联网公司笔试题、面试题中经常出现的,但是变化万众,看起来各大IT巨头乐此不疲。能够很好的、熟练而巧妙的操作链表、字符串和数组也是一个码农必备的技能之一。下面对最近这段时间中看到的通过巧妙使用指针来解决此类问题的题目进行总结,方便归纳记忆。【链表:寻找链表的中点、或者寻找链表倒数第n的节点】 此类问题利用快慢指针(此处将起跳时间不同的指针也认为是快原创 2014-03-14 17:09:16 · 2903 阅读 · 0 评论 -
Web版PACS开发纪要一:关闭动态库中创建的线程
最近的项目是关于B/S架构下的Web版PACS开发,为了缩短研发周期,采用了该领域主流的两大开源库:DCMTK和CxImage。但是由于项目初期对CxImage开源库的编译问题,导致该开源库在MFC下无法正常运行,因此决定将功能函数在控制台下完成,然后封装成动态链接库(XXX.dll),并加载到MFC工程中。下面是对“急救车上的多种医疗设备数据采集客户端”开发中遇到的问题进行的简略记录,主要分为以原创 2013-05-25 18:25:35 · 3959 阅读 · 0 评论 -
真假常量(const VS define)
常量,通常指在程序中出现的数字1,2,3,等,字符串“Hello World”,以及数组名称等,他们都属于常量。在程序中是不允许修改他们的值。虚假常量const挑战真正常量define下面一段程序:代码前面定义了:#define ZS 2234;程序调试,反汇编如下:如上图所示:首先:程序是将立即数8BAh(立即数可以作为汇编的操作数)直接存储到cons原创 2012-06-18 18:11:40 · 2309 阅读 · 0 评论 -
转:nested type
原文出处:http://blog.csdn.net/holdshow/article/details/5719176原本是想找有关C++对象模型的资料的,恰巧搜到了这边博文,感觉还可以,就转载了。原文如下:因为是基础,所以一定要吃透,记牢。归整一下,方便记忆。A type defined within a class or struct is called a nested typ转载 2012-05-26 22:44:38 · 2459 阅读 · 0 评论 -
算法学习笔记之三:八皇后问题(递归、回溯)
(一)题记从去年下半年开始找工作,大大小小也被“鄙”试、“面”试了n多回了。说实话只怪自己并未对常见的笔试题、面试题进行准备,导致败下阵来。一门学问要想学透学精是需要时间的,慢慢来吧……第一次听到“八皇后”问题是在参加百度计算机视觉算法工程师面试时听中科院来面试的一个博士说的,当时隐约记得他是搞机器学习、模式识别的,所以自己以为这是很难的一个问题,回来简单想了一下也就没有细究。到后来去本行原创 2014-03-12 21:33:22 · 44113 阅读 · 4 评论 -
栈开解(stack unwinding)
Stack unwinding (C++ only)When an exception is thrown and control passes from a try block to a handler, the C++ run time calls destructors for all automatic objects constructed since the beginning o转载 2012-09-08 14:39:44 · 1993 阅读 · 0 评论 -
MFC学习笔记:怎样尽可能的跟踪和查看MFC中函数的代码
基本上可以总结为:只用两种方法就可以基本看到WINDOWS MFC的函数定义了。一、利用windows系统的搜索功能,直接在安装目录下面搜索你需要的函数(例如本次的目标是CMDIFrameWnd::OnWindowNew()),直接打开系统的搜索功能(CTRL+F)。然后输入OnWindowNew。搜索结果如下(本人电脑是windowsXP SP3系统,VS2008安装在C盘)。图原创 2012-08-17 16:40:36 · 3820 阅读 · 0 评论 -
使用CL.EXE查看C++中类的内存结构
转自博客园:http://www.cnblogs.com/dsky/archive/2012/02/07/2340984.html 今天查资料的时候发现 VS 编译器 CL 的一个编译选项可以查看 C++ 类的内存布局,非常有用。使用如下,从开始程序菜单找到 Visual Stdio 2008/2005 Command Prompt,选择 VS 的命令行工具,按如下格式使用:>cl –转载 2012-05-29 19:04:35 · 2450 阅读 · 0 评论 -
DCMTK 开源库的学习笔记2:直接操作dcm文件中像素数据的尝试
DCMTK官网给出了JPEG格式压缩的DCM文件解压缩的方法(http://support.dcmtk.org/docs/mod_dcmjpeg.html),代码摘录如下:原创 2013-04-10 21:17:45 · 12207 阅读 · 3 评论