自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 ARP封包总结

第一次写发包程序,发送ARP数据包。写一些体会。1.封包之前一定要用sniffer抓包看看,封好之后看看数组内存的值,比对一下。ARP包sniffer需要选Hardware2.由于计算机内存序列和网络序列不一致,所以需要用htons函数转成网络序列。序列具体的不同,可以看抓包文件。void BuildArpPacket(CString szEDMac,CString szESMac,CSt

2010-05-17 20:20:00 2037

原创 Debug和Release的问题

dll 中封装了几个 对话框,可是有几个对话框debug时候正常,release在显示的时候总是不能正确显示到位(且显示位置不确定)。查了一天不知道什么原因,后来BBS发帖求助,才知道release定义的变量一定要初始化,经查代码中限制窗口的变量cx,cy没有初始化.将其初始化为0后,一切搞定以后千万要养成良好的编程习惯!! 

2007-06-11 10:47:00 969

转载 VC各类之间的调用函数总结

VC各类之间的调用函数总结 最近在网上看到一些关于在文档类,视图类,框架类,应用程序类,自定义类中获取其它四个类的方法,现总结如下: GET  App、、、、、AfxGetInstanceHandle()、、、、、AfxGetApp()GET  Frame->View->Document、、、、、SDI   AfxGetMainWnd() -> GetActiveView() -> Get

2007-06-05 11:38:00 961

原创 保存为BMP,Jpg,Png格式的图片

以保存当前对话框图片为例:void CMyView::OnButton1() {CClientDC dc(this);CRect rc;GetClientRect(&rc);CDC memDC;memDC.CreateCompatibleDC(&dc);CBitmap bm;bm.CreateCompatibleBitmap(&dc, rc.Width(), rc.Height());

2007-06-05 11:33:00 2189

原创 对话框可以拖动改变大小

要在Property中设置 Resizer属性才可以调整其大小 

2007-06-05 11:31:00 3372

原创 改变CListCtrl行高

在格式化ListCtrl后添加如下代码: CImageList ImageList; ImageList.Create(16,16,   ILC_COLOR16,   1,   1);;    //m_Image.Add(AfxGetApp()->LoadIcon(IDI_ICON1));    m_List.SetImageList(&ImageList,LVSIL_SMALL);   

2007-06-05 11:30:00 1889 1

原创 重载最大最小化

这个功能一般很少用,但网上经常有人问起。其方法较简单,主要是通过重载OnSysCommand函数实现。消息WM_SYSCOMMAND映射到OnSysCommand函数。重载最小化示例如下:OnSysCommand(UINT nID, LPARAM lParam){          if ( nID == SC_MINIMIZE )         {            

2007-05-18 15:53:00 845

原创 拖盘图标用法

只写出代码,具体的资源不说了 1.ON_MESSAGE(WM_TRAY_NOTIFICATION,OnTrayNotification)2.afx_msg LRESULT OnTrayNotification(WPARAM wParam,LPARAM lParam);3.//系统托盘LRESULT CNetCapDlg::OnTrayNotification(WPARAM wParam,L

2007-05-18 15:52:00 1018

原创 在Static中画图

在Static中画图要画图必须得到相应的DC。 所以,你的Static Text最好有个在其所属的对话框内的独一无二的ID,比如命名为: IDC_STC_PIC. 然后通过 pWnd=CWnd* CDialog::GetDlgItem(IDC_STC_PIC)或者 pWnd=CWnd* ::GetDlgItem(HWND hDlg, UINT ID)得到窗口类指针 再通过HDC hDC = :

2007-05-16 15:26:00 1061

转载 对话框中加入属性页

参看http://www.vckbase.com/document/viewdoc/?id=398 

2007-03-29 13:42:00 707

原创 转载)Windows消息大全

由Thinkboy提供表A-1 Windows消息分布消息范围说 明0 ~ WM_USER – 1系统消息WM_USER ~ 0x7FFF自定义窗口类整数消息WM_APP ~ 0xBFFF应用程序自定义消息0xC000 ~ 0xFFFF应用程序字符串消息> 0xFFFF为以后系统应用保留表A-2 常用Windows消息消息名称值说 明WM_NULL 0x0000空消息,此消息将被接收窗口忽略WM_

2007-03-29 13:41:00 1050

原创 关于状态栏的一些问题

今天发现status在shared dll时build,可以正确显示,但是在 static时就显示不出来,不知道为什么,后来去网上搜了搜,并且step into 调试,发现好象是  ID资源没有找到,无奈之下,在string table 下重建资源,rebuild,就OK了 关于status栏的使用,可以参考文章://------本程序主要是在对话框中增加状态栏,自己绘制,主要

2007-03-29 13:38:00 843

原创 在ListCtrl中将多选框变为单选框的方法

在ListCtrl中将多选框变为单选框的方法:假定ID为IDC_LIST1增加:ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST1, OnItemchangedList1)函数实现: void CTestDlg::OnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult) {    NM_LISTVIEW* pNMListV

2007-03-29 13:35:00 1618 1

原创 Combox对象的 CBN_SELCHANGE事件

 今天发现响应一个Combox的CBN_SELCHANGE消息时,总得到Combox上次的旧值,不解!后来CSDN,发现有人响应该消息得到的却是新的值。。尝试修改了Combox的属性,将Drop down 属性改为 Drop List后,发现 CBN_SELCHANGE消息响应时得到的就是新的值。

2007-03-29 13:33:00 4706

原创 将对话框资源移到另外工程的步骤

将某工程A对话框资源转移到另外一个工程B的方法:1.将A中对话框的.h,.cpp文件拷贝到B工程下,并添加进去.2.将A中 Resource.h中设计到该对话框资源的ID 拷贝到 B 工程的 Resource.h 文件中 (注意A,B中的ID取值要不同)3.将A中 .rc文件中设计到对话框的代码拷贝到B中的.rc文件中(由于rc编辑器没有打开,不便于处理,可采用Search IDD_Dialg

2007-03-29 13:31:00 936

原创 ADO中正常使用GetRecordCount解决方法

有时候使用GetRecordCount函数,总是返回-1,这是跟客户端游标有关,如果ado组件在客户端使用的前向只读游标,就无法返回结果集的条数,只能返回-1,改成静态游标或键集游标就行了。  修改方法:_ConnectionPtr   m_pConnection;     hr=m_pConnection.CreateInstance(__uuidof(Connection)   );  

2007-03-29 13:30:00 3778

原创 ADO规范写法

#include #import "c:/program files/common files/system/ado/msado15.dll" no_namespace rename ("EOF", "adoEOF") int main(){//使用ADO连接数据库...//----------------------------------------------------------

2007-03-29 13:29:00 1144 1

原创 DLL中使用ADO的解决方法

在DLL中使用ADO,总是出现enum type redefinition错误信息表示有定义冲突。 通常这种情况是由于把ADO(通过#import, 或adoint.h)和MFC DAO或DAO SDK代码放在同一实现文件内(.cpp), 如:     #include   // MFC DAO      // 或     #include    // DAO SDK     #i

2007-03-29 13:28:00 1182

原创 避免ADO出现warning 4146的方法

在 import的前面加上: #pragma warning(disable:4146)//#import "C://Program Files//Common Files//System//ado//msado15.dll" no_namespaces rename("EOF","adoEOF")#pragma warning(default:4146)  

2007-03-29 13:26:00 1249 1

原创 被TRACE小郁闷一把

 写了个程序,解析数据包的,总是在运行一段时间后出现 dumpout.cpp 52 断言错误,看代码提示,知道是数组越界了,改数组大小,还是不行,郁闷不已。仔细看了dumpout.cpp 52行的错误,才明白 TRACE输出的缓冲区大小最大为 512,超过的话就报错。所以改自己代码数组大小是没有用的。 

2007-03-19 15:18:00 1688 2

原创 软件包装不可少!一步一步学做安装程序 install-us

经常发布自己的文档,程序或软件,但苦于不会编程,无法做出令人羡慕的专业安装程序效果?事实上,制作安装程序并没有我们想像中的那么困难,只因有了Install-Us……  Install-Us资料  软件版本:4.503 软件大小:5.52MB  软件性质:共享软件 适用平台:Windows 9x/Me/2000/XP  该软件小巧易用,供有Wizard(向导)方式制作安装盘,制作一个

2007-02-02 17:50:00 1764

转载 漏洞扫描器的扫描原理 ZZ

1、漏洞扫描器的扫描原理   网络漏洞扫描器对目标系统进行漏洞检测时,首先探测目标系统的存活主机,对存活主机进行端口扫描,确定系统听开放的端口,同时根据协议指纹技术识别出主机的操作系统类型。然后扫描器对开放的端口进行网络服务类型的识别,确定其提供的网络服务。漏洞扫描器根据目标系统的操作系统平台和提供的网络服务,调用漏洞资料库中已知的各种漏洞进行逐一检测,通过对探测响应数据包的分析判断是否

2007-02-02 15:39:00 19582 1

原创 关于IPC$的一些东东

虽然是很老的东东了,但是还是贴了出来。。。微软在win2000,xp中设置的这个功能对个人用户来说几乎毫无用处。反而成了黑客入侵nt架构操作系统的一条便利通道。如果你的操作系统存在不安全的口令,那就更可怕了。一条典型的入侵流程如下:   (1)用任何办法得到一个帐户与口令(猜测,破解),网上流传有一个叫做smbcrack的软件就是利用ipc$来破解帐户口令的。如果你的密码位数不高,又很简单

2007-02-02 15:34:00 668

转载 sniffer开发工具包libpcap学习总结

libpcap使用总结!libpcap 是一个开发sniffer的工具包。pcap:packet capture!libpcap的数据类型定义:struct pcap_addr:网卡地址描述{pcap_addr * next;sockaddr * addr;sockaddr * netmask;sockaddr *broadaddr;sockaddr *dstaddr;};pcap_addr *

2007-02-02 13:43:00 1255

原创 关于winpcap 的郁闷问题

今天用winpcap写了第一个程序,就是很简单地获取本地网卡列表,但是结果却大不一样我机子的网卡是Realtek(集成的),捕获显示的网卡列表只有一个:Generic NdisWan Adapter...baidu了一下知道这个是个拨号的东东,都有的。所以就是我本机的网卡并没有被捕获。。。但是把程序拿到别人的机子上试了试,可以正常捕获,郁闷死了无奈之下,重装了winpcap,竟然好了NND

2007-01-29 17:36:00 880

转载 错误处理和异常处理,你用哪一个[转载]

张笑猛2003年1月1.简介    异常是由语言提供的运行时刻错误处理的一种方式。提到错误处理,即使不提到异常,你大概也已经有了丰富的经验,但是为了可以清楚的看到异常的好处,我们还是不妨来回顾一下常用的以及不常用的错误处理方式。1.1 常用的错误处理方式返回值。我们常用函数的返回值来标志成功或者失败,甚至是失败的原因。但是这种做法最大的问题是如果调用者不主动检查返回值也是可以被编译器接受的,你也奈

2007-01-20 17:12:00 1147

转载 Visual C++程序调试方法入门

概述  调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。  这里我简要的根据自己的经验列出调试中比较常用的技巧,希望对大家有用。  本文约定,在选择菜单时,通过/表示分级菜单,例如File/Open表示顶级菜单File的子菜单Open。   设置  为了调试一个程序,首先必须使程序中包含调试信息。一般情况下,一个从Ap

2007-01-20 17:11:00 776

转载 VC中预处理指令与宏定义的妙用

作者:刘巍出处:BLOG责任编辑: 方舟 [ 2006-09-05 05:00 ]刚接触到MFC编程的人往往会被MFC 向导生成的各种宏定义和预处理指令所吓倒,但是预处理和宏定义又是C语言的一个强大工具。  刚接触到MFC编程的人往往会被MFC 向导生成的各种宏定义和预处理指令所吓倒,但是预处理和宏定义又是C语言的一个强大工具。使用它们可以进行简单的源代码控制,版本

2007-01-20 17:10:00 642

转载 Visual C++中回调函数使用的变身大法

对于回调函数的编写始终是写特殊处理功能程序时用到的技巧之一。先介绍一下回调的使用基本方法与原理。  1、在这里设:回调函数为A()(这是最简单的情况,不带参数,但我们应用的实际情况常常很会复杂),使用回调函数的操作函数为B(), 但B函数是需要参数的,这个参数就是指向函数A的地址变量,这个变量一般就是函数指针。使用方法为: int A(

2007-01-20 17:09:00 644

转载 用Visual C++制作微秒级精度定时器

在工业生产控制系统中,有许多需要定时完成的操作,如:定时显示当前时间,定时刷新屏幕上的进度条,上位机定时向下位机发送命令和传送数据等。特别是在对控制性能要求较高的控制系统和数据采集系统中,就更需要精确定时操作。众所周知,Windows是基于消息机制的系统,任何事件的执行都是通过发送和接收消息来完成的。这样就带来了一些问题,如一旦计算机的CPU被某个进程占用,或系统资源紧张时,发送到消息队列中的消息

2007-01-20 17:08:00 1026

转载 VC++6.0中用Win32 API实现串行通信

串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信方便易行,所以应用广泛。我们可以利用Windows API 提供的通信函数编写出高可移植性的串行通信程序。本实例介绍在Visual C++6.0下如何利用Win32 API 实现串行通信程序。程序编译运行后的界面效果如图一所示: 图一、串口通信

2007-01-20 17:06:00 979

原创 1_20郁闷调试

公司写的代码调试没有任何错误,拿回家中没有改动,rebuild了一下,竟然出现:fatal error C1083: Cannot open include file: stdafx.h:不应该呀,找了n久,终于发现出现错误的cpp文件头写了  #include ,把它改为 #include "stdafx.h"就OK了中文版的VC还是不好用 ,没有了VA的日子还是很不爽 

2007-01-20 16:59:00 607

转载 VC用ADO访问数据库全攻略

介绍VC用ADO访问数据库全攻略,介绍了VC用ADO来访问数据库的各个对象及各方法,很经典,也很实用,很值得一看。 读者评分 10 评分次数 3 正文一、ADO概述ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口。ADO 使您能够编写应用程序以通过 OLE. DB 提供者访问和操作数据库服务器中的数据。ADO 最主要的优点是易于

2006-12-13 13:07:00 712

转载 网络编程--WININET

一个Internet客户端程序的目的是通过Internet协议如:HTTP、FTP等来存取网络数据源(服务器)的信息。客户端程序可以访问服务器获得象天气预报,股票价格、重要新闻数据,甚至是与服务器交换信息。Internet客户端程序可以通过外部网络(Internet)或内部网络(一般为Intranet)访问服务器。    为了开发Internet客户端程序。MFC类库提供了专门的 Win32 In

2006-11-24 11:49:00 1106

原创 WWW攻击法

 WWW攻击法贴这篇文章之前首先向spark说声对不起本来很早以前就想写这篇文章的可惜那时候刚好赶上换工作好了闲话少说,言归正传这儿的WWW攻击只限一般站点的攻击对于采用安全连接的站点还没有试过一个很好的实践的目标就是各种支持WWW的免费邮件如果你想用它来进入黄色站点那也没办法 :)一般的站点中如果你想浏览某些需要授权的内容首先要经过身份验证这一步就是让你输入用户名、密码然后浏览器会根

2006-11-24 11:36:00 762

转载 Socket中如何设置连接超时

Socket中如何设置连接超时AntGhazi/2001.12.14 主页:antghazi.yeah.net把CSDN与中文yahoo翻了底朝天,也没找到如何设置socket的连接超时的满意方法,问此问题的兄弟已有一大堆,这里偶就讲一下win下如何设置socket的connect超时。设置connect的超时很简单,CSDN上也有人提到过使用select,但却没有一个令人满意与完整的答案。偶

2006-11-24 11:26:00 1117

原创 CString COleDateTime CTime之间的转换

     

2006-11-24 11:17:00 718

转载 socket网络编程的一些东东

目录: 1) 什么是套接字? 2) Internet 套接字的两种类型 3) 网络理论 4) 结构体 5) 本机转换 6) IP 地址和如何处理它们 7) socket()函数 8) bind()函数 9) connect()函数 10) listen()函数 11) accept()函数 12) send()和recv()函数 13) sendto()和recvfrom()函数 14) clos

2006-10-10 11:12:00 2772 2

转载 INADDR_ANY的用法

INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上表示不确定地址,或“所有地址”、“任意地址”。 一般来说,在各个系统中均定义成为0值。例如MontiVista Linux中在/usr/include/netinet/in.h定义为:/* Address to accept any incoming messages.  */#define INADDR_ANY  

2006-10-10 11:10:00 8089 2

原创 GDI双缓冲绘图

双缓冲技术及其在VC的GDI环境下的实现[2006-02-27 18:47:03] [来源: VCKBASE] [我要投稿]本文章地址:http://www.jztop.com/dev/vc/2006-02-27/12460.html [点此复制地址] function copyToClipBoard(){ var clipBoardContent=; c

2006-10-08 09:39:00 3859 1

空空如也

空空如也

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

TA关注的人

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