windows编程
文章平均质量分 78
tony821224
这个作者很懒,什么都没留下…
展开
-
UNICODE编程
1. 进行Unicode编程 文章来源:http://blog.csdn.net/tuwen/archive/2007/08/14/1742879.aspx在windows下编程还是支持unicode吧,大势所趋啊,window 2k以后的系统底层都是基于Unicode的,就算你调用ANSI的API(以A结尾比如SetWidowsTextA),系统也会在你的进程默认堆上动态分配一块内存,转载 2007-09-11 22:58:00 · 691 阅读 · 0 评论 -
消息与消息队列
基于windows的应用程序是事件驱动的。它们不进行明确的函数调用(比如调用C运行库)来获得输入。取而代之的是他们等待操作系统将输入传递给他们。 操作系统传递所有的输入给各种应用程序。每个window有一个函数叫做窗口过程,只要有输入操作系统就调用他们。窗口过程处理输入后,将控制返回给操作系统。详细资料请看窗口过程。Microsoft? Windows? XP:如果最顶层(top-leve转载 2010-01-23 09:30:00 · 681 阅读 · 0 评论 -
VC解析XML--使用CMarkup类解析XML
我是使用的CMarkup类对XML进行操作。 CMarkup好象都是先从一个xml文件里面把内容读出来,再进行解析,搞得我恨不得要把我的CString写到xml文件里面再取出来了。 如果需要直接读取CString,可以直接用 CMarkup::SetDoc方法。 最后其他的方法转载别人的使用例转载 2010-01-22 23:03:00 · 465 阅读 · 0 评论 -
window消息大全
Windows消息大全 选择自 CQP 的 Blog 消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录转载 2010-01-23 08:53:00 · 288 阅读 · 0 评论 -
关于MFC下检查和消除内存泄露的技巧
文章来源:http://blogger.org.cn/blog/more.asp?name=njucs&id=3954摘要 本文分析了Windows环境使用MFC调试内存泄露的技术,介绍了在Windows环境下用VC++查找,定位和消除内存泄露的方法技巧。 关键词:VC++;CRT 调试堆函数;试探法。编译环境 VC++6.0技术原理检测内存泄漏的主要工具是调转载 2010-01-23 09:15:00 · 481 阅读 · 0 评论 -
关于#include "stdafx.h"
(1)Standard Application Frame Extend没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行。Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重复处理这些文件就显得很傻了。为避免这种浪费,A转载 2010-01-26 09:12:00 · 786 阅读 · 0 评论 -
检查内存泄露很好用的代码
#include #ifdef _DEBUG#define DEBUG_NEW new(_NORMAL_BLOCK, __FILE__, __LINE__)#endif#ifdef _DEBUG#undef THIS_FILEstatic char THIS_FILE[]=__FILE__;#define new DEBUG_NEW#endif 放在cpp开头 _CrtSe转载 2010-01-26 09:23:00 · 452 阅读 · 0 评论 -
语音键盘
在“运行”中输入“narrator”,点“确定”。 点“确定”跳过后便请出本文的主角──“讲述人”。 如果你的音箱已经打开,听到了什么?不想听的话就按一下Ctrl键。原创 2010-01-27 11:08:00 · 466 阅读 · 0 评论 -
VC解析XML--使用CMarkup类解析XML
VC解析XML--使用CMarkup类解析XML(一) 先讲一下XML中的物殊字符,手动填写时注意一下。字符 字符实体& &或& '或'> >或>"原创 2010-01-31 17:37:00 · 479 阅读 · 0 评论 -
用非静态类成员函数作为线程函数
非静态的类成员函数是不能直接作为线程函数的,如果把成员函数声明为静态,可以解决问题,但是静态函数只能访问类的静态成员,这又带来很多麻烦。不过可以通过包装解决此问题,如下:class test{ private: void func();//实际需要作为线程函数的函数 public: static unsinged原创 2010-02-02 09:28:00 · 648 阅读 · 0 评论 -
MFC程序的构造过程和运行机理
文件出处:http://tangfeng.javaeye.com/blog/93399 一个完整的窗口需要经过下面四个操作步骤:1.设计一个窗口类我们知道全局对象的构造函数会在main 函数之前执行,那么这个全局类对象:theApp在main函数执行前就已经分配好了内存空间,由其定义class CTestApp : public CWinApp{ ....}可知,该全局类继承自C转载 2010-02-03 17:22:00 · 473 阅读 · 0 评论 -
ini文件读写的一个实例
http://dev.gameres.com/Program/Control/Vcini.htm原创 2010-02-04 17:12:00 · 632 阅读 · 0 评论 -
释放对象数组:delete与delete[]
<>练习 14.11 中提到: Account *parray=new Account[100]; delete parray; delete [] parray; 方括号的存在会使编译器获取数组大小(size)然后析构函数再被依次应用在每个元素上,一共size次。否则,只有一个元素被析构。 无论哪种情况,分配的全部空间被返还给自由存储区。 我的原创 2010-02-22 15:29:00 · 1025 阅读 · 0 评论 -
VC下线程同步的三种方法(互斥、事件、临界区)/(转)
首选使用临界区对象,主要原因是使用简单。 EnterCriticalSection()函数等候指定的危险区段对象的所有权。当调用的线程被允许所有权时,函数返回。 EnterCriticalSection (),一个单独进程的线程可以使用一个危险区段对象作为相互-排除同步。 进程负责分配被一个危险区段对象使用的内存, 它藉由声明一个CRITICAL_SEC转载 2010-02-22 08:50:00 · 538 阅读 · 0 评论 -
VC 创建和结束进程
进程是当前操作系统下一个被加载到内存的、正在运行的应用程序的实例。每一个进程都是由内核对象和地址空间所组成的,内核对象可以让系统在其内存放有关进程的统计信息并使系统能够以此来管理进程,而地址空间则包括了所有程序模块的代码和数据以及线程堆栈、堆分配空间等动态分配的空间。进程仅仅是一个存在,是不能独自完成任何操作的,必须拥有至少一个在其环境下运行的线程,并由其负责执行在进程地址空间内的代码。在进程原创 2010-02-25 13:37:00 · 566 阅读 · 0 评论 -
CRITICAL_SECTION 理解的总结 EnterCriticalSection LeaveCriticalSection
CRITICAL_SECTION 理解的总结很多人对CRITICAL_SECTION的理解是错误的,认为CRITICAL_SECTION是锁定了资源,其实,CRITICAL_SECTION 是不能够“锁定”资源的,它能够完成的功能,是同步不同线程的代码段。简单说,当一个线程执行了EnterCritialSection之后,cs里面的 信息便被修改了,以指明哪一个线程占用了它。而此时,并没有任何资源原创 2010-02-25 14:48:00 · 874 阅读 · 0 评论 -
内存操作越界略述
不知大家遇到过没有,有时候程序莫名其妙地出现众多问题,但经常调试来调试去,都不知原因所在,我曾经就被这类问题害得很惨,大部分都是内存操作越界引起的。现在就我知道的总结如下,我将其分为两类:一类是无明显表现的,只会给程序运行带来其妙的错误(1、2、3),一类调试时有明显表现(4、5)。1、字符串数组定义长度忘记加+1(结束符)如: char str[10]; ::strcp转载 2010-01-23 09:17:00 · 1188 阅读 · 0 评论 -
Visual C++ MFC 中常用宏的含义(转贴)
Visual C++ MFC 中常用宏的含义(转贴)AND_CATCHAND_CATCH AND_CATCH(exception_class,exception _object_point_name) 说明:定义一个代码块,它用于获取废除当前TRY块中的附加异常类型。使用CATCH宏以获得一个异常类型,然后使用AND_CATCH宏获得随后的异常处理代码可以访问异常对象(若合适的话)已得转载 2010-01-23 09:10:00 · 454 阅读 · 0 评论 -
vc中的CString的操作
CString 操作指南原著:Joseph M. Newcomer翻译:littleloach原文出处:codeproject:CString Management通过阅读本文你可以学习如何有效地使用 CString。 CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特转载 2010-01-23 08:50:00 · 737 阅读 · 0 评论 -
LPTSTR、LPCSTR、LPCTSTR、LPSTR的意义
UNICODE:它是用两个字节表示一个字符的方法。比如字符A在ASCII下面是一个字符,可A在UNICODE下面是两个字符,高字符用0填充,而且汉字程在ASCII下面是两个字节,而在UNICODE下仍旧是两个字节。UNICODE的用处就是定长表示世界文字,据统计,用两个字节可以编码现存的所有文字而没有二义。 MBCS,它是多字节字符集,它是不定长表示世界文字的编码。MB转载 2007-09-12 10:10:00 · 647 阅读 · 0 评论 -
Visual C++中的ODBC编程
一、MFC提供的ODBC数据库类 Visual C++的MFC基类库定义了几个数据库类。在利用ODBC编程时,经常要使用到 CDatabase(数据库类)、CRecordSet(记录集类)和CRecordView(可视记录集类)。 CDatabase类对象提供了对数据源的连接,通过它可以对数据源进行操作。 CRecordSet类对象提供了从数据源中提取出的记录集。CRecordSet对象通常原创 2007-09-22 19:27:00 · 767 阅读 · 0 评论 -
VC++工程文件下的各个文件说明
VC++工程文件下的各个文件说明:1.clw文件.clw ClassWizard信息文件,实际上是INI文件的格式,有兴趣可以研究一下.有时候ClassWizard出问题,手工修改CLW文件可以解决.如果此文件不存在的话,每次用ClassWizard的时候绘提示你是否重建.2.ncb文件.ncb 无编译浏览文件(no compile browser).当自动完成功能出问题时可以删除原创 2007-10-01 10:39:00 · 1135 阅读 · 0 评论 -
VC++6.0编译环境介绍
大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解。原因是多方面的。大多数情况下,我们只停留在“使用”它,而不会想去“了解”它。因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设计上。我们习惯于这样一种“模式”:建立一个项目,然后写代码,然后编译,反反复复调试。但是,所谓:“公欲善其事,必转载 2008-02-14 16:31:00 · 3517 阅读 · 2 评论 -
考场安排---图的着色原理之运用 (转载)
设学校共有n门课,需要进行期末考试,因为不少学生不止选修一门课程,所以不能把同一个学生选修的两门课程安排在同一场次进行考试,问学期的期末考试最少需多少场次考完?(提示:如果两门课被同一个同学选上,则表示这两门课的顶点之间存在一条边)。试设计一算法,当给定一个图时G=(V,E),|V|=n,(Vi,Vj)ЄE,当且仅当有一个同学选了课程i和课程j,试给出一个考试安排方案N1,N2转载 2008-01-18 16:59:00 · 1510 阅读 · 2 评论 -
通过内核源码看函数调用之前世今生(转载)
栈(Stack):一个有序的积累或堆积 韦氏词典对每一位孜孜不倦的程序员来说,栈已深深的烙在其脑海中,甚至已经发生变异。栈可以用来传递函数参数、存储局部变量、以及存储返回值的信息、还可以用于保存寄存器的值以供恢复之用。 在X86平台上(又称之为IA32转载 2008-01-18 17:04:00 · 702 阅读 · 0 评论 -
VC++中进程间相互通信的十一种方法
进程通常被定义为一个正在运行的程序的实例,它由两个部分组成: 一个是操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方 另一个是地址空间,它包含所有的可执行模块或DLL模块的代码和数据。它还包含动态分配的空间。如线程堆栈和堆分配空间。每个进程被赋予它自己的虚拟地址空间,当进程中的一个线程正在运行 时,该线程可以访问只属于它的进原创 2009-09-09 12:56:00 · 653 阅读 · 0 评论 -
LPCTSTR、LPTSTR、_T和CString几种类型的区别
_T是提供给开发者方便的编写在Unicode、MBCS、ANSI等环境下 都适用的宏,编译器自然会解释它,我们只要每个字符串都用上 它就不用管了。 在 UNICODE定义的工程里,_T("this string") 被解释为L"this string" 。其他工程里被解释为"this string" LPCTSTR、LPTST原创 2009-09-08 08:54:00 · 2791 阅读 · 0 评论 -
VC++ ADO数据库 FlexGrid控件
耗费了一下午,研究了一下VC的数据库编程,写了这个测试程序。主要的功能为实现access数据库的添加与删除,同时动态的将数据库数据显示在flexgrid控件中。下面把过程记录下来,以备后用。一。ADO简介 ADO提供了一组非常简单,将一般通用的数据访问细节进行封装的对象。由于ODBC数据源也提供了一般的OLE DB Privider,所以ADO不仅可以应用自身的OLE DB Privider,而且原创 2009-09-28 13:27:00 · 2119 阅读 · 6 评论 -
VC用法汇总
(1)如何通过代码获得应用程序主窗口的指针?主窗口的指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.(2)确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。Example:TCHAR原创 2009-09-29 20:35:00 · 1053 阅读 · 0 评论 -
MFC程序的生死因果
程序的诞生:■ Application object 产生,内存于是获得配置,初值亦设立了。■ Afx WinMain 执行AfxWinInit,后者又调用AfxInitThread,把消息队列尽量加大到96。■ Afx WinMain 执行InitApplication。这是CWinApp 的虚拟函数,但我们通常不改写它。■ AfxWinMain 执行InitInsta原创 2009-09-27 22:50:00 · 1142 阅读 · 0 评论 -
CString常用方法小结
CString常用方法小结CString::Compareint Compare( LPCTSTR lpsz ) const;返回值 字符串一样 返回0 小于lpsz 返回-1 大于lpsz 返回1 区分大小字符 CString s1( "abc" );CString s2( "abd" )原创 2009-10-09 14:29:00 · 480 阅读 · 0 评论 -
VC中一些控件的小技巧
文章来源:http://fulong258.blog.163.com/blog/static/17895044200861161121969/ 1.让List Control有Check Box用SetExtendedStyle方法可以设置,看代码:(CListCtrl m_ListCtrl;)DWORD dwStyle = m_ListCtrl.GetStyle();转载 2009-10-14 15:39:00 · 417 阅读 · 0 评论 -
标准MFC WinSock ActiveX控件开发实例
一、MFC ActiveX控件开发步骤(VC 6.0): New->Projects->MFC ActiveX ControlWizard,然后输入MFCWinSock工程名。如下图: 图片看不清楚?请点击这里查看原图(大图)。 图一 创建工程 一路狂按Next,直至Finsh出现,再按下OK,如下图: 图二 创建完成 二、架设Socket环转载 2009-10-12 17:22:00 · 1569 阅读 · 0 评论 -
后门程序--示例
后门程序BDoor及源码 选择自 amh 的 Blog提交时间:2005-04-22提交用户:ffantasyYD工具分类:后门程序运行平台:Windows工具大小:316825 Bytes文件MD5 :95e120d97967a3679dfdbd82985ea1ca工具来源:http://www.uestc.edu.cn/web/default.aspx这是本人考研后的第一个作品转载 2010-01-23 08:52:00 · 966 阅读 · 0 评论 -
GPS NMEA-0183协议详解
NMEA协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。 NMEA-0183协议是GPS接原创 2009-12-29 19:51:00 · 1248 阅读 · 0 评论