自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (1)
  • 收藏
  • 关注

原创 标题暂无,日后再总结

<br />在用一个vc6工程代码的时候出现了如题的错误,google之后发现大部分文章都是说是字符集问题。而实际的问题是vector< char >的iterator不能被转化为char指针,解决办法很简单,由类似 (vectorChar.Begin()+i) 改为 (&vectorChar.Front()+i)的方法解决。<br />本也不是个问题,可为什么vc6可以转而vc9要改动呢?望有牛人告知。<br /> <br />另外还遇到一个错误,本来截了图,忘记传网盘了,回公司补充吧。<br />问题在

2010-11-24 20:59:00 680

转载 Observer Pattern

 转自:http://www.cnblogs.com/zhenyulu/articles/73723.html一、 观察者(Observer)模式观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。一个软件系统常

2010-11-21 20:10:00 531

转载 Bridge Pattern

<br /><br /> 转自http://www.cnblogs.com/zhenyulu/articles/62720.html一、 桥梁(Bridge)模式<br />桥梁模式是一个非常有用的模式,也是比较复杂的一个模式。熟悉这个模式对于理解面向对象的设计原则,包括"开-闭"原则(OCP)以及组合/聚合复用原则(CARP)都很有帮助。理解好这两个原则,有助于形成正确的设计思想和培养良好的设计风格。<br />注:《Java与模式》一书认为Bridge模式不是一个使用频率很高的模式,我不太赞同,我认为B

2010-11-21 20:07:00 521

转载 VC 查找进程,关闭进程

<br /><br />比较简单的东西,不管怎么做个记录,本来是想通过发消息的方法关闭,因为是控制台程序,所以就直接 TerminateProcess了。<br />//<br />// FindProcess<br />// 这个函数唯一的参数是你指定的进程名,如:你的目标进程<br />// 是 "Notepad.exe",返回值是该进程的ID,失败返回0<br />//<br />DWORD FindProcess(char *strProcessName)<br />{<br />    DWORD

2010-11-21 20:05:00 1001 1

原创 启动程序进程不显示程序窗口

<br /><br />工作中遇到的问题。<br />对这种简单的烂大街东西了,百度百科还是蛮好用的。不过对自己解决问题的思路与效率还是满意的。代码如下:<br />void CtestHideDlg::OnBnClickedButton1()<br />{<br />// TODO: 在此添加控件通知处理程序代码<br />//MessageBox(_T("1111"));<br />CString strFilePath;<br />strFilePath=GetModulePath (_T("hfs.

2010-11-21 20:04:00 3970

转载 AfxBeginThread和AfxEndThread

<br /><br />启动线程:<br /> <br />CWinThread* AfxBeginThread( 线程函数,this );<br /> <br />线程的退出:<br /> <br />在刚刚使用的时候,退出线程的方法有问题,导致退出的时候异常。<br /> <br />下面说线程退出的方法:<br /> <br />1.线程函数返回<br /> <br />线程都在死循环中,当满足一定条件时,return,也会将线程结束。<br /> <br />2.AfxEndThread<br />

2010-11-21 19:43:00 2355

转载 设置窗口类名

<br /><br /> 在DOC/VIEW结构的应用程序中,要修改主窗口(CMainFrame)的类名,可以利用超类化技术。关于超类化还可以参考浅谈MFC中超类化技术的实现。但是超类化技术对基于对话框基础的应用程序是没有效果。如何修改呢?先看看用超类化改DOC/VIEW结构形式。超类化技术一般有如下几个步骤:<br />      1. 通过调用 GetClassInfoEx 来获得想要进行超类化操作的窗口类的信息。函数GetClassInfoEx 需要一个指向 WNDCLASSEX 结构的指针,用于当成

2010-11-21 19:43:00 1744

转载 获得窗口指针

<br /><br />获得CWinApp: <br /> <br />-在CMainFrame,CChildFrame,CDocument,CView中直接调用AfxGetApp()或用theApp <br /> <br />-在其它类中只能用AfxGetApp() <br /> <br /> <br /> <br />获得CMainFrame: <br /> <br />-在CMinApp中用AfxGetMainWnd()或者m_pMainWnd <br /> <br />-在CChildFrame中可

2010-11-21 19:41:00 990

转载 CallJs

<br /><br />C++ call JavaScript,介绍2种解决方案:1种嵌Webkit作浏览器(纯QT方法);另1种嵌IE控件作为浏览器(适用于非QT,但我是在QT里使用的)。<br /> <br /> <br /> <br />    这个需求比较冷门,所以资料少,搞起来比较折腾人。<br /> <br /> <br /> <br />    解放方案1:使用Webkit library (可以说是纯QT实现)<br /> <br /> <br /> <br />    代码量不多,直接贴代

2010-11-21 19:40:00 1239

转载 ID--HANDLE--HWND三者之间的互相转换

<br />id->句柄hWnd = ::GetDlgItem(hParentWnd,id);<br />id->指针CWnd::GetDlgItem();<br />句柄->idid = GetWindowLong(hWnd,GWL_ID);<br />句柄->指针CWnd *pWnd=CWnd::FromHandle(hWnd);<br />指针->IDid = GetWindowLong(pWnd->GetSafeHwnd,GWL_ID);<br />                 id = pWn

2010-11-21 11:42:00 1090

转载 DISP_FUNCTION

<br /> <br /><br />DISP_FUNCTION<br /> <br />DISP_FUNCTION( theClass, pszName, pfnMember, vtRetVal, vtsParams )<br /> <br />#include <afxdisp.h><br /> <br />参数:<br />theClass类的名字。<br />pszName函数的外部名字。<br />pfnMember成员函数的名字。<br />vtRetVal指定了函数返回类型的值。<br />v

2010-11-21 11:42:00 8666 1

转载 Windows消息大全

消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg,它在Windows单元中是这样声明的:typeTMsg = packed recordhwnd: HWND; / /窗口句柄message: UINT; / /消息常量标识符

2010-11-21 11:39:00 393

转载 WPARAM 和 LPARAM

<br />WPARAM常常代表一些控件的ID或者高位底位组合起来分别表示鼠标的位置,如果消息的发送者需要将某种结构的指针或者是某种类型的句柄时,习惯上用LPARAM来传递。

2010-11-21 11:38:00 546

转载 MFC字符串类型

<br /><br />MFC支持有很多种字符和字符串数据类型,在此将他们整理一下以便记忆。<br /> <br />1. char wchar_t<br />char         这个不用说了是标准c的字符类型,8bit<br /> <br />wchar_t       用来保存UNICODE字符集的类型,16bit<br /> <br />2. CHAR WCHAR TCHAR<br />CHAR         与小写的char等价<br />             typedef char

2010-11-21 11:35:00 2834 2

原创 自定义控件之:label

自定义label,实现了透明,文字靠左,中,右对齐,自动换行(仅针对汉字,有根据使用文字的方法,不过我比较懒就没写了),字体颜色,背景颜色,背景图,平铺背景图等。透明方法通过在 OnPaintBackground调用Parent重绘接口重绘背景并且本身不绘制背景来实现。此DLL可在控件工具箱中使用,大部分修改即时显示。先贴一部分代码,留到有空再编辑咯。using System.ComponentModel;using System.Windows.Forms;using System.Drawing;nam

2010-11-21 11:29:00 1341

转载 Invoke和BeginInvoke

转自http://www.cnblogs.com/c2303191/articles/826571.htmlControl.Invoke 方法 (Delegate) :在拥有此控件的基础窗口句柄的线程上执行指定的委托。Control.BeginInvoke 方法 (Delegate) :在创建控件的基础句柄所在线程上异步执行指定委托。(一)Control的Invoke和BeginInvoke我们要基于以下认识:(1)Control的Invoke和BeginInvoke与Delegate的Invoke和Beg

2010-11-21 11:26:00 513

转载 C# Using用法三则

Using (1)引用命名空间 using作为引入命名空间指令的用法准则为: using Namespace; 在.NET程序中,最多见的代码莫过于在程序文件的开头引入System命名空间,其原由在于System命名空间中封装了很多最基本最常用的操作,下面的代码对咱们来说最为熟悉不过: using System; 这样,咱们在程序中就可以直接运用命名空间中的类型,而不必指定细致的类型名称。using指令可以访问嵌套命名空间。 关于:命名空间 命名空间是.NET程序在逻辑上的组织结构,而并非实际的物理结构,是

2010-11-21 11:24:00 551

转载 C#:代表(delegate)和事件(event) (转)

 代表(delegate): 它是C#语言里面的函数指针,代表可以指向某一个函数,在运行的时候调用这个函数的实现。下面来看看它的实现步骤:声明一个delegate对象。实现和delegate具有相同参数和返回值的函数实现(可以是静态和非静态的)。产生一个delegate对象的时候,把你刚刚实现的函数作为参数传给他的构造函数。请看下面例子:using System;using System.Collections.Generic;using System.Text;namespace UsingDelegat

2010-11-21 11:23:00 425

原创 不同Panel之间切换问题

<br />开始用的是Show()跟Hide()方法,在Panel较多的情况下会发生某些Panel不能显示问题。<br /> <br />        private void tvOption_AfterSelect(object sender, TreeViewEventArgs e)<br />        {<br /> <br />            this.UnVisibleAllPanels();  //这里,初始化每个panel的visible属性为false<br /> <br

2010-11-21 11:22:00 1893

转载 C语言函数入栈顺序与可变参数函数

<br /><br />翻看以前记录的C语言函数调用方式,觉得不甚明了,google之,看了一遍,这篇要好上许多。<br /> C/C++函数调用约定与函数名称修饰规则探讨<br />使用C/C++语言开发软件的程序员经常碰到这样的问题:有时候是程序编译没有 问题,但是链接的时候总是报告函数不存在(经典的LNK 2001错误),有时候是程序编译和链接都没有错误,但是只要调用库中的函数就会出现堆栈异常。这些现象通常是出现在C和C++的代码混合使用的情况下或 在C++程序中使用第三方的库的情况下(不是用C+

2010-11-21 11:15:00 914

转载 Windows Mobile 自定义控件(二)

<br /><br />在完全此系列的一之后,我一直在想第二篇究竟应该如何组织,首先我想接着上篇的话题把框架的问题说完,首先我还是这句话在本系列当中会兼顾C/C++开发与.NET开发,其实不管用不用框架,WINDOWS都是基于消息的,只要这点不变,我就希望大家能通过我的系列博客当中能体会二者的联系。<br />    在第一篇博客当中UI框架的实现与MFC或者NET都有一个本质的区别那就是子控件是不基于窗体句柄的,那么这其中的好处是灵活,还有的好处这是一个支持实现透明控件的框架,圆角边界等在。NET或者MF

2010-11-21 10:52:00 498

原创 windows Mobile 双缓冲绘图

<br /><br />public class formWithBackGround : System.Windows.Forms.Form<br />     {<br />        protected Bitmap backBuffer;<br />        public formWithBackGround()<br />        {<br />            backBuffer = new Bitmap(240, 268);<br />        }<br />  

2010-11-21 10:52:00 1010

转载 Windows Mobile 自定义控件(一)

<br /><br />最近总是在CSDN的移动论坛当中看到有关UI的问题,按照层次大致可以分为如何定制***控件,或者***控制如何实现***功能。或者再深入一点的比如实现透明的方式,如何画一个PNG支持ALPHA通道,再往下就是实现复杂控件当中所遇到的问题了。<br />    暂停了纯开发工作一段时间,反而有了一些心得,所以我想就这些问题给出我自己的解答,当然这可能不是最优的,但是我想通过对于某一问题的探讨大家集思广义,共同把自己的方法,关键是思路理顺。当然第一篇只是起始,欢迎大家留言,我也会尽量根据

2010-11-21 10:51:00 358

转载 断点失效问题

<br /> <br />VS2008按F5无法在断点处停留,主要有以下几种情况:<br />1、生成方式是Realse不是Debug。<br />如果是dll工程,那么在配置-》通用配置-》debugging里边把command line、command argument、working dir设置好。<br />并且把该工程设置为启动项,否则断点无效。<br /> <br />2、调试时到“附加到进程”菜单里看有没有“aspnet_wp.exe”的进程,如果没有,添加。 <br />3、控件的事件丢失。

2010-11-21 10:50:00 668

转载 VC文件扩展名解读大全

<br /><br />.APS:存放二进制资源的中间文件,VC把当前资源文件转换成二进制格式,并存放在APS文件中,以加快资源装载速度。资源辅助文件。<br />.BMP:位图资源文件。<br /><br />.BSC:浏览信息文件,由浏览信息维护工具(BSCMAKE)从原始浏览信息文件(.SBR)中生成,BSC文件可以用来在源代码编辑窗口中进行快速定位。用于浏览项目信息的,如果用source brower的话就必须有这个文件。可以在project options里去掉Generate Browse In

2010-11-21 10:47:00 393

转载 LINK2005错误

<br /><br />许多Visual C++的使用者都碰到过LNK2005:symbol already defined和LNK1169:one or more multiply defined symbols found这样的链接错误,而且通常是在使用第三方库时遇到的。对于这个问题,有的朋友可能不知其然,而有的朋友可能知其然却不知其所以然,那么本文就试图为大家彻底解开关于它的种种疑惑。<br />大家都知道,从C/C++源程序到可执行文件要经历两个阶段:(1)编译器将源文件编译成汇编代码,然后由汇编器

2010-11-21 10:45:00 516

转载 c调用c++

<br />可以在C代码中调用C++的函数,要满足以下条件 <br />*   被调用C++函数要使用extern   C声明,这样 <br />    o   多个重载函数中只能有一个函数被声明成extern   C,只有这个函数能 <br />        被C代码访问。 <br />    o   你不能在函数的参数列表中使用类和引用,C代码没办法处理引用或者 <br />        成员函数或者虚函数什么的。 <br />    o   你也没办法使用namespace,C代码不懂得这个。要在

2010-11-21 10:44:00 432

转载 关于C++对象的自杀

<br /><br />转自:http://blog.csdn.net/jasonblog/archive/2010/11/05/5989224.aspx<br />前两天看到一个问题,一个类的成员函数是否可以delete this ?<br />据出题者的意思来看,是认为这样的问题一般比较少人会遇到,而这样就可以了解一下对方对未知问题的分析和解决思路。<br /><br />出于这点,我也想看看自己的思路,所以就先自己思考了一下。<br />    1. 要使用delete,那么对象需要使用new来实例化

2010-11-21 10:42:00 428

转载 C++ 字符串操作经验集

<br /> 转自:http://blog.csdn.net/elthe/archive/2006/10/02/1316780.aspxC++ 字符串操作经验集 1.    字符类型和字符串lchar,wchar_t,CHAR,BYTE,UCHAR,WCHAR,TCHAR,TBYTEchar是C语言标准数据类型,字符型,至于由几个字节组成通常由编译器决定,一般一个字节。wchar_t是char的Unicode版本。相当于unsigned short。一般两个字节。CHAR 和WCHAR分别是char和wch

2010-11-21 10:41:00 573 1

转载 内存泄漏及其检测工具 (作者:蒋涛)

<br /><br /> <br /> <br />对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已经比较成熟,但是在c/c++领域的发展并不顺畅,虽然很早就有人思考在C

2010-11-21 10:39:00 374

转载 VC内存泄漏检测工具_Visual Leak Detector

<br /><br />灵活自由是C/C++语言的一大特色,而这也为C/C++程序员出了一个难题。当程序越来越复杂时,内存的管理也会变得越加复杂,稍有不慎就会出现内存问 题。内存泄漏是最常见的内存问题之一。内存泄漏如果不是很严重,在短时间内对程序不会有太大的影响,这也使得内存泄漏问题有很强的隐蔽性,不容易被发现。 然而不管内存泄漏多么轻微,当程序长时间运行时,其破坏力是惊人的,从性能下降到内存耗尽,甚至会影响到其他程序的正常运行。另外内存问题的一个共同特点 是,内存问题本身并不会有很明显的现象,当有异常现象

2010-11-21 10:39:00 408

转载 C++内存泄漏检测

<br /><br />如何检查C++中的内存泄漏<br /> 内存泄漏是编程中常常见到的一个问题,我所遇过的原因有两个:<br />1.分配完内存后忘记回收<br />2.代码有问题,造成想回收却无法回收,例如:<br />int* p=new int;<br />p=new int;   //p指针修改,原来申请内存的地址没有记录下来,于是无法释放<br /> 下面介绍如何检查内存泄漏:<br />1.包含头文件和定义<br />#define _CRTDBG_MAP_ALLOC   //并非绝对需要该

2010-11-21 10:38:00 469

转载 placement delete

<br /><br />一个new的过程大致分两步:<br />- 申请内存<br />- 调用构造函数构造新对象<br /><br /><br />如果第一步成功而第二步失败,一个成熟的系统应该能回撤第一步,释放刚分配的内存空间。<br />如果第一步用的是普通的new函数,C++是能够找到与之匹配的delete函数的。<br />//normal form of new operator<br />void* operator new(std::size_t) throw(std::bad_alloc)

2010-11-21 10:37:00 1545

转载 safe_delete

<br /><br /> <br />safe_delete(p)的若干心得<br /><br /><br />#define safe_delete(p) do{ delete p; p=NULL; } while(false)  <br /><br /><br />    这种写法的意义不是显而易见的,而且还有另外一种版本的safe_delete(),在此就不写了,同样的令人费解——或者说让初学C++编程的人费解。<br /><br /><br />    其实如此做的目的就是为了让程序更健壮。<br

2010-11-21 10:37:00 1570

转载 Placement new、operator new、new operator 完全释疑

<br /><br />首先我们区分下几个容易混淆的关键词:<br />new(也称作new operator)、operator new、placement new。看如下代码:<br />1: class MyClass {...}; <br />2: MyClass *p = new MyClass; <br /><br /><br />这里的new是上述三个关键字中的第一个,成为new操作符。实际上它执行如下3个过程:<br />1. 调用operator new分配内存<br />2. 调用构造函

2010-11-21 10:35:00 309

转载 typedef的四个用途和两个陷阱

<br /><br />问题内容:typedef的四个用途和两个陷阱<br />原讨论链接:http://community.csdn.net/expert/topicview1.asp?id=5298039<br />所属论坛:C++ 语言     审核组:C/C++<br />提问者:Dragon_Red     解决者:Dragon_Red<br />感谢:huangyangman ugg littlebao YourKing fosjos<br />关键字:函数 C/C++ 变量 指针 C++ 语言

2010-11-21 10:34:00 450

转载 C++虚函数表解析

<br /><br /> <br />C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。<br />关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数

2010-11-21 10:30:00 387

转载 无法解析,该符号在函数 ___tmainCRTStartup 中被引用

<br /><br />一,问题描述<br />MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用<br />Debug/jk.exe : fatal error LNK1120: 1 个无法解析的外部命令<br />error LNK2001: unresolved external symbol _WinMain@16<br />debug/main.exe:fata

2010-11-21 10:29:00 1543

转载 C++ 四种类型转换方式

<br /><br />去VS有遇到这道题,只记得static_cast,dynamic_cast这两种,而且是只记得名字..在C++primer上看到过,没好好记一下,毕竟没用过,在此做个记录。。<br /><br />  具体归纳如下:<br />  reinterpret_cast<br />  该函数将一个类型的指针转换为另一个类型的指针.<br />  这种转换不用修改指针变量值存放格式(不改变指针变量值),只需在编译时重新解释指针的类型就可做到.<br />  reinterpret_cast

2010-11-21 10:28:00 875

转载 预处理器标识

<br /> #include    包含一个源代码文件         #define     定义宏         #undef      取消已定义的宏         #if         如果给定条件为真,则编译下面代码         #ifdef      如果宏已经定义,则编译下面代码         #ifndef     如果宏没有定义,则编译下面代码         #elif       如果前面的#if给定条件不为真,当前条件为真,则编译下面代码  

2010-11-21 10:28:00 439

c++11 Value Terminology

c++11 Value Terminology

2012-06-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除