摘要: 原文作者:Alex Blekhman翻译:朱金灿原文来源:http://www.codeproject.com/KB/cpp/howto_export_cpp_classes.aspx译文来源:http://blog.csdn.net/clever101/article/details/3034743C++语言毕竟能和Windows DLLs能够和平共处。 自从Windows的开始阶段动态链接库(DLL)就是Windows平台的一个组成部分。动态链接库允许在一个独立的模块中封装一系列的功能函数然后以一个显式的C函数列表提供外部使用者使用。在上个世纪80年代,当Windows DLLs面世时,对 阅读全文
posted @ 2013-02-25 14:07 天堂大鸟 阅读(6384) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://www.cnblogs.com/TankXiao/archive/2013/01/08/2818542.html原文作者:肖佳HTTP状态码,我都是现查现用。 我以前记得几个常用的状态码,比如200,302,304,404, 503。 一般来说我也只需要了解这些常用的状态码就可以了。 如果是做AJAX,REST,网络爬虫,机器人等程序。还是需要了解其他状态码。 本文我花了一个多月的时间把所有的状态码都总结了下,内容太多,看的时候麻烦耐心点了。HTTP状态码的学习资料到处都有,但是都是理论上讲解。 本文介绍HTTP协议中的HTTP状态码(HTTP Status Code) 阅读全文
posted @ 2013-01-10 15:58 天堂大鸟 阅读(956) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://blog.chinaunix.net/uid-20614434-id-2999833.htmlAuthor:FinalBSDDate:2008-07-08之前讲Etag的时候都只是对断点续传做了最简单的说明,没有深入研究。今天研究了一会,希望可以回答Laurence的问题,呵呵:)1.断点续传概念断点续传的理解可以分为两部分:一部分是断点,一部分是续传。断点的由来是在下载过程中,将一个下载文件分成了多个部分,同时进行多个部分一起的下载,当某个时间点,任务被暂停了,此时下载暂停的位置就是断点了。续传就更好理解些了,就是当一个未完成的下载任务再次开始时,会从上次的断点继续传 阅读全文
posted @ 2013-01-10 15:54 天堂大鸟 阅读(3604) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://blog.csdn.net/pgmsoul/article/details/7094309这个其实应该算VS2008的一个bug吧,对于不能识别的资源,添加的时候,VS会弹出一个对话框让你填类型,这个类型其实是字符串表示,而不是像内置类型,是整数。但是添加PNG图片的时候,它自动识别为PNG,可是实际上VS内部又会把它搞成Bitmap类型,打开RC文件,把BITMAP改成PNG或者任何其他名称,就好了。因为VS不支持PNG图片,包括MS的画图,都不能处理png的透明。所以识别为Bitmap会出错。当然了,对于png资源,不能用LoadBitmap之类函数加载,而要使用F 阅读全文
posted @ 2012-12-25 11:17 天堂大鸟 阅读(4820) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://blog.csdn.net/magictong/article/details/3603015源代码下载:http://d.download.csdn.net/down/907655/magictong综述:让一个程序只运行一个实例的方法有多种,但是原理都类似,也就是在程序创建前,有窗口的程序在窗口创建前,检查系统中是否已经设置了某些特定标志了,如果有说明已经有一个实例在运行了,则当前程序通知用户怎样怎样,然后程序退出,当然方法有这么多,各自也就有自己的优缺点了。<注意下面的程序都是分块拷贝的>方法一: 我用得做多的方法是创建互斥体Mutex,使用Mutex 阅读全文
posted @ 2012-10-16 17:24 天堂大鸟 阅读(552) 评论(0) 推荐(1) 编辑
摘要: 为了简单明了上了个图,其他例如:当文字长度大于列宽的时候,应该设置鼠标悬停显示完整的文字Tips。 之前做界面完全不会想到这些知识,这次学到了不少,记录并分享。当然,图上的界面没有做任何的美化, 时WTL的原始界面。如果改为其他界面库或者美工处理一下会更好,但重点是,无论什么外观的界面,道理是相通的。 阅读全文
posted @ 2012-10-16 13:52 天堂大鸟 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 有些内存泄露是不会dump出来详细信息的,只会给出内存块号,这种情况一下一般可以用一下方法调试出来。这两天调一个程序,发现每次退出都有内存泄漏,在此总结一个调试内存泄漏的好方法。对于比较明显的内存泄漏,vc2008是比较容易定位的,在Debug模式F5运行,退出时会列出引起内存泄漏的问题代码所在文件及行号;但如果是比较隐蔽的内存泄漏,Output输出窗口只会输出部分信息,形式如下:Detected memory leaks!Dumping objects ->{858} normal block at 0x003ED290, 12 bytes long.Data: < \H> 阅读全文
posted @ 2012-07-18 16:47 天堂大鸟 阅读(7565) 评论(0) 推荐(1) 编辑
摘要: 建立TCP连接就好比一个电话系统[Nemeth 1997]。socket函数等同于有电话可用。bind函数是在告诉别人你的电话号码,这样他们可以呼叫你。listen函数是打开电话振铃,这样当有一个外来呼叫到达时,你就可以听到。connect函数要求我们知道对方的电话号码并拨打它。accept函数发生在被呼叫的人应答电话之时。由accept返回客户的标识(即客户的IP地址和端口号)类似于让电话机的呼叫者ID功能部件显示呼叫者的电话号码。然而两者的不同之处在于accept只在连接建立之后返回客户的标识,而呼叫者ID功能部件却在我们选择应答或不应答电话之前显示呼叫者的电话号码。如果使用域名系统DNS 阅读全文
posted @ 2012-04-16 16:39 天堂大鸟 阅读(412) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://www.codeproject.com/Articles/76252/What-are-TCHAR-WCHAR-LPSTR-LPWSTR-LPCTSTR-etcMany C++ Windows programmers get confused over what bizarre identifiers likeTCHAR,LPCTSTRare. In this article, I would attempt by best to clear out the fog.In general, a character can be represented in 1 byte 阅读全文
posted @ 2012-03-13 15:25 天堂大鸟 阅读(635) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://www.cppblog.com/mzty/archive/2005/12/15/1770.html详细解说 STL 排序(Sort)作者Winter详细解说 STL 排序(Sort)0 前言: STL,为什么你必须掌握1 STL提供的Sort 算法1.1 所有sort算法介绍1.2 sort 中的比较函数1.3 sort 的稳定性1.4 全排序1.5 局部排序1.6 nth_element 指定元素排序1.7 partition 和stable_partition2 Sort 和容器3 选择合适的排序函数4 小结5 参考文档一切复杂的排序操作,都可以通过STL方便实现! 阅读全文
posted @ 2012-02-20 15:42 天堂大鸟 阅读(369) 评论(0) 推荐(0) 编辑
摘要: The problem seems to be that when using Unicode instead of MBCS, setting TVIS_FOCUSED attribute resets TVIS_SELECTED for current selected item. Thus for shift selection the function DoPreSelection must be corrected by adding if (m_hSelect != hItem) SetItemState( m_hSelect, TVIS_SELECTED, TVIS_SELECT 阅读全文
posted @ 2012-02-13 17:11 天堂大鸟 阅读(851) 评论(0) 推荐(0) 编辑
摘要: 在vs2008下面,插入一个菜单资源,发现没法改变其ID,后来网上搜到解决办法,选中资源,按下alt+enter即可。http://zhidao.baidu.com/question/329810890.html?fr=fd 阅读全文
posted @ 2011-12-19 14:55 天堂大鸟 阅读(2191) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://www.cnblogs.com/yjm0105/archive/2005/05/20/159581.html//stdafx.h#import"c:\programfiles\commonfiles\system\ado\msado15.dll"no_namespacerename("EOF","adoEOF")//主程序初始化函数BOOLCADO2App::InitInstance(){AfxEnableControlContainer();AfxOleInit();//初始化COM库//---------- 阅读全文
posted @ 2011-11-09 14:23 天堂大鸟 阅读(1693) 评论(0) 推荐(0) 编辑
摘要: http://hi.baidu.com/rootlife/blog/item/45335cd0060e738da0ec9c41.html这些不同在编程的时候必须知道,现在很忙,先把题目列在这,有机会再贴。^-^~~~~~~~~~~~^-^见谅 ~~~~~~~~~~~~~~~趁有那么一点时间,赶紧来贴一下,说简洁点. 顾名思义,前台指看得见,既然看得见自然要有窗口,而后台是看不见,看不见可以理解为没有窗口,既然没有窗口,那么用AfxGetMainWnd()取得其窗口句柄,未免有些搞笑,为什么呢?聪明的你想必早已明白,如果你曾经跟踪过AfxGetMainWnd()的调用,会发现它取得的是AFX_. 阅读全文
posted @ 2011-09-07 10:30 天堂大鸟 阅读(750) 评论(0) 推荐(0) 编辑
摘要: 在stdafx.h中加入如下语句,重新编译#pragmacomment(linker,"/manifestdependency:\"type='win32'name='Microsoft.Windows.Common-Controls'version='6.0.0.0'processorArchitecture='x86'publicKeyToken='6595b64144ccf1df'language='*'\"") 阅读全文
posted @ 2011-09-01 09:07 天堂大鸟 阅读(550) 评论(0) 推荐(0) 编辑
摘要: 参考了文章:http://www.docin.com/p-65394443.html具体就是不使用OnHScroll里面的nPos变量转而使用SCROLLINFO 里面的nTrackPos变量原因是因为nPos是UINT类型 范围最大是32767 再大就为负值了 至于为什么 我也不知道而nTrackPos是int型,范围比较大不过常理讲,UINT在正值范围内肯定要比int大的,不知道为什么,莫非是微软为了兼容16位机器?SCROLLINFO scrollInfo;m_ctlScrollH.GetScrollInfo(&scrollInfo, SIF_ALL);m_ctlScrollH. 阅读全文
posted @ 2011-06-17 11:03 天堂大鸟 阅读(1337) 评论(0) 推荐(1) 编辑
摘要: http://topic.csdn.net/u/20080625/13/cf92a220-d2a9-4f05-ae53-7acce4dd84dc.htmlo(∩_∩)o...,谢谢了,成功了我一开始是按你说的来做的,没成功,你那句“这两句是多余的。。”让我把所有你里边关于rect的语句都去掉了好了,结贴吧,呵呵,谢谢了,不过我得把问题解决方法说清楚先:第一步:在视类头文件里添加CRectTracker m_tracker;CRect m_RectTrack; //当时只注意到了mxm324仁兄说那两句可以不要,没注意到后边半句才是关键“rect是成员变量”=_=!第二步:在构造函数里初始化Ct 阅读全文
posted @ 2011-05-30 09:57 天堂大鸟 阅读(1514) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/guguarchieve/archive/2010/05/20/5612126.aspx在没有滚动条的程序中按照网上介绍的方法使用CRectTracker时没有任何问题,然而在滚动视图中如果还是按照该步骤来的话就会出现千奇百怪的错误,其中的原因主要是坐标的传入问题。一般GDI函数使用的坐标都是逻辑坐标,而CrectTracker中的Draw和其他成员函数使用的都是设备坐标(Device Coordinates), 这其中就会产生很多问题。据给简单例子,当滑动滚动条时,假设没有鼠标拖曳操作,则tracker应该是随滚动条一起移动的,但此时tracker的 阅读全文
posted @ 2011-05-27 17:04 天堂大鸟 阅读(1063) 评论(0) 推荐(0) 编辑
摘要: 实现序列化的类必须满足下列条件:1. 该类需要从CObject类派生(可以是间接派生);2. 在类中中进行DECLARE_SERIAL宏定义;3. 类存在有缺省的构造函数;4. 类中实现了Serialize()函数,并且在其中调用基类的序列化函数;5. 使用IMPLEMENT_SERIAL宏指明类名及版本号;C/C++ code.hstruct Node { int index; std::vector <int> num; } class CatalogNode : public CObject{ DECLARE_SERIAL(Data)public: int id; std:: 阅读全文
posted @ 2011-05-11 17:26 天堂大鸟 阅读(4196) 评论(0) 推荐(0) 编辑
摘要: 上次给大家介绍了Visual C++ 2008 的Feature Pack的界面库新特性。今天给大家介绍一下,怎样用Feature Pack把您现有的Visual C++ 程序界面修改得漂亮些。所需的修改环境: VisualC++ 2008 (Team Suite版Express版都可以,但必须是英文版,否则Feature Pack不支持) 正确的安装了Visual C++ 2008 Feature Pack beta 您要修改的Visual C++ 的程序源代码工程具备了以上三点就可以开始进行修改操作了。但是有一点提请注意,那就是您程序中是否用到了MS C++ 9.0 编译器不再支持的语法特 阅读全文
posted @ 2011-04-27 15:39 天堂大鸟 阅读(1744) 评论(0) 推荐(0) 编辑