该文被密码保护。
posted @ 2011-01-08 14:26 荷包蛋 阅读(3) 评论(0) 编辑
摘要: 在单文档中的使用方法步骤一 初始化在CView类的.h头文件中包含文件:#include "Gridctrl.h"并且手写加入如下的成员函数:CGridCtrl * m_pGridCtrl;步骤二 构造与析构构造函数中:m_pGridCtrl = NULL;析构函数中:if(m_pGridCtrl)delete m_pGridCtrl;步骤三 如果需要打印功能的话添加同名打印函数代码在CView类的OnBeginPrinting()函数中添加如下代码:if(m_pGridCtrl)m_pGridCtrl->OnBeginPrinting(pDC,pInfo);//简单阅读全文
posted @ 2012-05-01 23:45 荷包蛋 阅读(73) 评论(0)  编辑
摘要: MD5的算法描述:第一步:增加填充增加padding使得数据长度(bit为单位)模512为448。如果数据长度正好是模512为448,增加512个填充bit,也就是说填充的个数为1-512。第一个bit为1,其余全部为0。第二步:补足长度将数据长度转换为64bit的数值,如果长度超过64bit所能表示的数据长度的范围,值保留最后64bit,增加到前面填充的数据后面,使得最后的数据为512bit的整数倍。也就是32bit的16倍的整数倍。在RFC1321中,32bit称为一个word。第三步:初始化变量:用到4个变量,分别为A、B、C、D,均为32bit长。初始化为:A: 01 23 45 67阅读全文
posted @ 2012-05-01 23:42 荷包蛋 阅读(46) 评论(0)  编辑
摘要: 1 toolbar默认位图左上角那个点的颜色是透明色,不喜欢的话可以自己改。 2 VC++中 WM_QUERYENDSESSION WM_ENDSESSION 为系统关机消息。 4 在VC下执行DOS命令 a. system("md c:\\12"); b. WinExec("Cmd.exe /C md c:\\12", SW_HIDE); c. ShellExecute ShellExecute(NULL,"open","d:\\WINDOWS\\system32\\cmd.exe","/c md d:阅读全文
posted @ 2012-05-01 23:38 荷包蛋 阅读(6) 评论(0)  编辑
摘要: 以下未经说明,listctrl默认view 风格为report1.CListCtrl 风格LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观的理解:windows资源管理器,“查看”标签下的“大图标,小图标,列表,详细资料”2.设置listctrl 风格及扩展风格LONG lStyle;lStyle = GetWindowLong(m_list.m_hWnd, GWL_STYLE);//获取当前窗口style lStyle &= ~LV阅读全文
posted @ 2012-05-01 23:24 荷包蛋 阅读(2) 评论(0)  编辑
摘要: 使用DLL的一个比较严重的问题就是编译器之间的兼容性问题。不同的编译器对c++函数在二进制级别的实现方式是不同的。所以对基于C++的DLL,如果编译器不同就有很麻烦的。如果创建的是MFC扩展DLL,就不会存在问题,因为它只能被动态连接到MFC的客户应用程序。这里不是本文讨论的重点。一、重新编译问题我们先来看一个在实际中可能遇到的问题: 比如现在建立好了一个DLL导出了CMyClass类,客户也能正常使用这个DLL,假设CMyClass对象的大小为30字节。如果我们需要修改DLL中的CMyClass类,让它有相同的函数和成员变量,但是给增加了一个私有的成员变量int类型,现在CMyClass对象阅读全文
posted @ 2012-05-01 23:23 荷包蛋 阅读(2) 评论(0)  编辑
摘要: 虽然能用DLL实现的东西都可以用COM来实现,但DLL的优点确实不少,它更容易创建。本文将讨论如何利用MFC来创建不同类型的DLL,以及如何使用他们。一、DLL的不同类型 使用MFC可以生成两种类型的DLL:MFC扩展DLL和常规DLL。常规DLL有可以分为动态连接和静态连接。Visual C++还可以生成WIN32 DLL,但不是这里讨论的主要对象。1、MFC扩展DLL 每个DLL都有某种类型的接口:变量、指针、函数、客户程序访问的类。它们的作用是让客户程序使用DLL,MFC扩展DLL可以有C++的接口。也就是它可以导出C++类给客户端。导出的函数可以使用C++/MFC数据类型做参数或返..阅读全文
posted @ 2012-05-01 23:19 荷包蛋 阅读(2) 评论(0)  编辑
摘要: 一般的,在介绍Windows编程的书中讲述DLL的有关知识较多,而介绍MFC的书则比较少地提到。即使使用MFC来编写动态链接库,对于初步接触DLL的程序员来说,了解DLL的背景知识是必要的。另外,MFC提供了新的手段来帮助编写DLL程序。所以,本节先简洁的介绍有关概念。DLL的背景知识静态链接和动态链接当前链接的目标代码(.obj)如果引用了一个函数却没有定义它,链接程序可能通过两种途径来解决这种从外部对该函数的引用:静态链接链接程序搜索一个或者多个库文件(标准库.lib),直到在某个库中找到了含有所引用函数的对象模块,然后链接程序把这个对象模块拷贝到结果可执行文件(.exe)中。链接程序维护阅读全文
posted @ 2012-05-01 23:17 荷包蛋 阅读(15) 评论(0)  编辑
    该文被密码保护。
posted @ 2011-01-08 14:26 荷包蛋 阅读(3) 评论(0) 编辑
摘要: 在 Kenn Scribner 近期有关 XML 和 MSXML DOM 分析器的文章中,仅介绍了该分析器的部分功能。这些文章将 XML 作为一种技术进行了说明,但是并没有介绍 XML 分析器本身。现在,Kenn 将回过头来介绍 MSXML 分析器,并讲解处理 XML 文档和节点所需的基本知识:搜索特定的节点、插入节点和检索节点值。  MSXML 分析器基于 XML 文档对象模型,对于查看表 1 ...阅读全文
posted @ 2009-10-17 20:54 荷包蛋 阅读(270) 评论(0)  编辑
摘要: 这篇文章是给那些习惯于用VB开发组件的人想转用VC++时看的。本文用一个简单的例子示范如何使用ADO Recordset 对象。在VB中,当你想要返回一个ADO Recordset,你会这样写…Function GetRecordset() As ObjectDim cn As ADODB.ConnectionDim rs As ADODB.RecordsetSet cn = New ...阅读全文
posted @ 2009-10-17 20:48 荷包蛋 阅读(76) 评论(0)  编辑
摘要: VC6.0中使用winpcap 1.下载winpcap的安装包,程序员开发包。(两个包)2.执行安装包,这样你的机子就能运行winpcap程序了3.解压开发包,在VC的option的include和lib中加入winpcap的include和lib4. 在工程的setting中导入wpcap.lib和Packet.lib库VC .net中使用winpcap1、在项目-〉属性 -〉C++ -〉常规标...阅读全文
posted @ 2009-10-17 20:41 荷包蛋 阅读(1073) 评论(0)  编辑
摘要: 在winpcap3.1beta4的文档中有个获取设备列表的例子程序其中使用到了pcap_findalldevs_ex()函数,在文档中是这样介绍这个函数的:This function is a superset of the old 'pcap_findalldevs()', which is obsolete, and which allows listing only the devices ...阅读全文
posted @ 2009-10-17 20:41 荷包蛋 阅读(1414) 评论(1)  编辑
摘要: 最近狂补基础,猛看TCP/IP协议。不过,书上的东西太抽象了,没有什么数据实例,看了不   久就忘了。于是,搬来一个sniffer,抓了数据包来看,呵呵,结合书里面得讲解,理解得   比较快。我就来灌点基础知识。     开始吧,先介绍IP协议。     IP协议(Internet Protocol)是网络层协议,用在因特网上,TCP,UDP,ICMP,IGMP数   据都是按照IP数据格式发送得...阅读全文
posted @ 2009-10-17 20:40 荷包蛋 阅读(148) 评论(0)  编辑
摘要: 一.Winpcap简介 Winpcap是UNIX下的libpcap移植到windows下的产物,他是一个free and open source的项目。Winpcap工作于驱动(Driver)层,所以能以很高的效率进行网络操作。 Winpcap提供了以下强大的功能: 1.捕获原始的数据包 2.设置filter,只捕获自己敢兴趣的数据包 3.方便的把捕获的数据包输出到文件和从文件输入 4.发送原始的...阅读全文
posted @ 2009-10-17 20:39 荷包蛋 阅读(1979) 评论(0)  编辑
摘要: SDK:LPCTSTR szFilterOpn[]=TEXT( "Executable files (*.exe)\0*.exe\0Dynamic Link Libraries (*.dll)\0*.dll\0OLE-ActiveX Controls (*.ocx)\0*.ocx\0Screen Savers (*.scr)\0*.scr\0All files (*.*)\...阅读全文
posted @ 2009-10-17 20:30 荷包蛋 阅读(49) 评论(0)  编辑
摘要: ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>...阅读全文
posted @ 2009-10-17 20:28 荷包蛋 阅读(202) 评论(0)  编辑
摘要: C 语言从 C94 引入多语言支持以后处理中文方便多了。即使不用 wchar_t 也可以获得很多好处,比如增加了 strcoll 这个根据 locale 比较字符串的函数。简单地说,一个 locale 就是一组处理跟语言相关问题的规则,这里有一篇简介。这些规则就包括如何对字符串进行比较和排序。按照 C94 及 C99 标准的规定,程序在启动时设置 locale 为 "C"。在 "C" locale...阅读全文
posted @ 2009-10-17 20:26 荷包蛋 阅读(613) 评论(0)  编辑
摘要: 很多人都觉得自己的程序的界面不那么美观,往往VC默认产生的对话框比较单调,因此很多人往往找到很多其它的控件对对话框进行美化修饰,例如给静态控件设置字体,设置背景颜色等等, 其实这些完全可以由VC自己的WM_CTLCOLOR消息来完成! WM_CTLCOLOR消息用来完成对EDIT、STATIC、BUTTON等控件设置背景和字体颜色,其用法如下:1.首先在自己需要设置界面的对话框上点击右键-->...阅读全文
posted @ 2009-10-17 20:24 荷包蛋 阅读(176) 评论(0)  编辑
摘要: 关于对话框中要处理的控件的ID是IDC_MYSTATIC // “关于”框的消息处理程序。 LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { static HFONT hfont_static; // 自定义字体的句柄 static H...阅读全文
posted @ 2009-10-17 20:21 荷包蛋 阅读(1201) 评论(0)  编辑
摘要: 为了支持Unicode编码,需要多字节与宽字节之间的相互转换。这两个系统函数在使用时需要指定代码页,在实际应用过程中遇到乱码问题,然后重新阅读《Windows核心编程》,总结出正确的用法。WideCharToMultiByte的代码页用来标记与新转换的字符串相关的代码页。MultiByteToWideChar的代码页用来标记与一个多字节字符串相关的代码页。常用的代码页由CP_ACP和CP_UTF8...阅读全文
posted @ 2009-10-17 20:21 荷包蛋 阅读(9259) 评论(0)  编辑
摘要: 时间上,oncreate,oninitial两者先后顺序不同,构造函数生成本类的对象,但没有产生窗口,OnCreate后窗口产生, 然后才是视图的OnInitialUpDate,一般在这里对视图的显示做初始化。简单点,就是ONCREATE只是产生VIEW的基本结构和变量而在OnInitialUpDate()中,主要初始化视图中控件等。对各个变量进行初始化操作。例子。我们要在视图中添加一个butto...阅读全文
posted @ 2009-10-17 20:18 荷包蛋 阅读(585) 评论(0)  编辑
摘要: richedit是指 richedit 控件 cricheditctrl是 richedit类 richedit20a是richedit的升级,因为老版本的richedit 有种种bug,如 半个汉字之类的问题,微软已经在richedit2.o中解决了问题.要在程序中使用richedit2.0 ,可以按照一下步骤实施: 1 对话框中放置一个custom 控件 更改类名属性(clas...阅读全文
posted @ 2009-10-17 20:17 荷包蛋 阅读(174) 评论(0)  编辑
摘要: 用MFC制作的工程由很多文件构成,它不能象一般C++程序那样随意在类外定义全局变量,在这里要想定义能被工程内多个文件共享的全局变量和函数必须用一些特殊方法才行。实际上有多种方法可以实现,这里只介绍两种方法。   一、在应用程序类中定义  用MFC生成的工程中都有一个名为CxxxApp的类,它派生于CWinApp类。这个类主要进行程序的初始化,生成文档、视图对象等工作。我们可以把需要全局访问的变量和...阅读全文
posted @ 2009-10-17 20:10 荷包蛋 阅读(136) 评论(0)  编辑
摘要: 如果要编写模块化的软件,就要对对动态链接库(DLL)有一定的了解,本人这段时间在修改以前的软件时,决定把重复用的类和对话框做到DLL中,下面就从一个简单的例子讲起,如何实现MFC扩展DLL中导出类和对话框。 一、创建MFC扩展DLL步骤: 运行Visual Studio 6.0->File->New...->Projects;选择Mfc AppWizard(dll),在右边Pro...阅读全文
posted @ 2009-10-17 20:09 荷包蛋 阅读(140) 评论(0)  编辑
摘要: 使用DLL的一个比较严重的问题就是编译器之间的兼容性问题。不同的编译器对c++函数在二进制级别的实现方式是不同的。所以对基于C++的DLL,如果编译器不同就有很麻烦的。如果创建的是MFC扩展DLL,就不会存在问题,因为它只能被动态连接到MFC的客户应用程序。这里不是本文讨论的重点。一、重新编译问题我们先来看一个在实际中可能遇到的问题: 比如现在建立好了一个DLL导出了CMyClass类,客户也能正...阅读全文
posted @ 2009-10-17 20:08 荷包蛋 阅读(445) 评论(0)  编辑
摘要: CString类功能强大,比STL的string类有过之无不及.新手使用CString时,都会被它强大的功能所吸引.然而由于对它内部机制的不了解,新手在将CString向C的字符数组转换时容易出现很多问题.因为CString已经重载了LPCTSTR运算符,所以CString类向const char *转换时没有什么麻烦,如下所示:  char a[100];  CString str("aaaaa...阅读全文
posted @ 2009-10-17 20:04 荷包蛋 阅读(54) 评论(0)  编辑
摘要: 看了很多人写的程序,包括我自己写的一些代码,发现很大的一部分bug是关于MFC类中的Cstring的错误用法的.出现这种错误的原因主要是对Cstring的实现机制不是太了解。Cstring是对于原来标准c中字符串类型的一种的包装。因为,通过很长时间的编程,我们发现,很多程序的bug多和字符串有关,典型的有:缓冲溢出、内存泄漏等。而且这些bug都是致命的,会造成系统的瘫痪。因此c++里就专门的做了一...阅读全文
posted @ 2009-10-17 20:03 荷包蛋 阅读(289) 评论(0)  编辑
摘要: CString,string,char*的综合比较(一)责任编辑:admin   更新日期:2005-8-6(一) 概述 string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中; CString(typedef CStringT > CString)为Visual C++中最常用的字符串类,继承自CSimpleStringT类,...阅读全文
posted @ 2009-10-17 20:01 荷包蛋 阅读(510) 评论(0)  编辑
摘要: 《C++标准函数库》中说的 有三个函数可以将字符串的内容转换为字符数组和C—string 1.data(),返回没有”\0“的字符串数组 2,c_str(),返回有”\0“的字符串数组 3,copy() .................................................................int...阅读全文
posted @ 2009-10-17 20:00 荷包蛋 阅读(236) 评论(0)  编辑
摘要: ###############DBWindow.h###################ifndef _DBWINDOW_#define _DBWINDOW_#include <windows.h>//控制台输出时的文本颜色#define WDS_T_RED FOREGROUND_RED#define WDS_T_GREENFOREGROUND_GREEN#define WDS_T_B...阅读全文
posted @ 2009-10-17 19:58 荷包蛋 阅读(362) 评论(0)  编辑
摘要: 在Visual C++中,MFC(微软基础类库)提供了CFile和CStdioFile两个类来进行程序中的文件输入输出操作。Cfile类提供了基于二进制流的文件操作,功能类似于C语言中的fread()和fwrite()函数。CStdioFile提供了基于字符串流的文件操作,功能类似于C语言中的fgets()和fputs()函数。但是,使用这两个类进行文件操作时 ,对于一次文件读写的数据量的大小必须...阅读全文
posted @ 2009-10-17 19:57 荷包蛋 阅读(154) 评论(0)  编辑
摘要: MFC类中获得其它类指针成都:苏颖锋(vcmfc输入并转贴) 当用VC++的Application Wizard生成除了CDialog Basiced以外的应用程序时,将自动产生视图类、文档类、主帧窗口类、应用程序类等等。一般来说,程序的核心数据及操作在文档类中实现。跟界面有关的数据及操作在视图类中实现。当需要在某个类中使用不属于该类的数据时,必须要取得该数据所属类的指针。从视图类获得文档类的指针...阅读全文
posted @ 2009-10-17 19:56 荷包蛋 阅读(57) 评论(0)  编辑
摘要: 我在编写一个程序,使用一个无模式对话框,实现类似于.NET的工具箱的功能.需要在光标移出这个对话框时,对话框自动隐藏.光标移到桌面左边界时,对话框自动显示出来。请问如何实现?谢谢! --------------------------------------------------------------- 处理消息WM_MOUSELEAVE ---------------------------...阅读全文
posted @ 2009-10-17 19:53 荷包蛋 阅读(228) 评论(0)  编辑
摘要: 在对话框程序的打印功能中,如果使用针式打印机,那么你可能希望连续打印的多个表中不换页。我们知道,在使用打印功能的时候,每当 dc.startpage()就会开始一页的打印,而dc.endpage()就会结束一页的打印,那么如何能使多个dc.startpage()与 dc.endpage()不换页而实现连续打印呢,方法如下: 假设我们要打印m_nTotalNum个表,每个表有m行,那么要实现m_nT...阅读全文
posted @ 2009-10-17 19:50 荷包蛋 阅读(130) 评论(0)  编辑
摘要: MD5的算法描述:第一步:增加填充增加padding使得数据长度(bit为单位)模512为448。如果数据长度正好是模512为448,增加512个填充bit,也就是说填充的个数为1-512。第一个bit为1,其余全部为0。第二步:补足长度将数据长度转换为64bit的数值,如果长度超过64bit所能表示的数据长度的范围,值保留最后64bit,增加到前面填充的数据后面,使得最后的数据为512bit的整...阅读全文
posted @ 2009-10-17 19:49 荷包蛋 阅读(706) 评论(0)  编辑
摘要: /Od 禁用优化(默认值) disable optimizations (default) /Ox 最大化选项。(/Ogityb2 /Gs) maximum opts. (/Ogityb1 /Gs) /Og 启用全局优化 enable global optimization /Oy[-] 启用框架指针省略 enable frame pointer omission /Oi 启用内建函数 enabl...阅读全文
posted @ 2009-10-17 19:47 荷包蛋 阅读(129) 评论(0)  编辑
摘要: 一、ADO概述ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口。ADO 使您能够编写应用程序以通过 OLE. DB 提供者访问和操作数据库服务器中的数据。ADO 最主要的优点是易于使用、速度快、内存支出少和磁盘遗迹小。ADO 在关键的应用方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻量、高性能的接...阅读全文
posted @ 2009-10-17 19:46 荷包蛋 阅读(33) 评论(0)  编辑
摘要: 作中我们经常会遇到要建立多个线程,以此方便于我们可以同时执行多个事件。这也是我们在VC开发中的一项基础,虽然我曾多次用到,但也会常常忘记。这次记下来,作为一个笔记,为大家学习提供方便。 在VC中,无非是创建线程和写线程函数 一、常规方法:纯使用Platform SDKAPI.1,创建线程: #include<windows.h> 在MFC中通常在OnInitDialog()下面创建线程...阅读全文
posted @ 2009-10-17 19:44 荷包蛋 阅读(757) 评论(0)  编辑
摘要: STATIC_CASTVERSUSREINTERPRET_CASTstatic_cast和reinterpret_cast操作符修改了操作数类型.它们不是互逆的;static_cast在编译时使用类型信息执行转换,在转换执行必要的检测(诸如指针越界计算,类型检查).其操作数相对是安全的.另一方面,reinterpret_cast仅仅是重新解释了给出的对象的比特模型而没有进行二进制转换,例子如下:i...阅读全文
posted @ 2009-10-17 19:43 荷包蛋 阅读(29) 评论(0)  编辑
摘要: pret_cast可以转换任意一个32bit整数,包括所有的指针和整数。可以把任何整数转成指针,也可以把任何指针转成整数,以及把指针转化为任意类型的指针,威力最为强大!但不能将非32bit的实例转成指针。总之,只要是32bit的东东,怎么转都行! static_cast和dynamic_cast可以执行指针到指针的转换,或实例本身到实例本身的转换,但不能在实例和指针之间转换。static_cast...阅读全文
posted @ 2009-10-17 19:43 荷包蛋 阅读(205) 评论(0)  编辑