
windows编程
wche1990
这个作者很懒,什么都没留下…
展开
-
关于编程的那些事--学习总结
如果一个编程初学者,从写控制台程序一下子跳到写MFC类的程序,相信很少有人能办到。我们在写控制台程序的时候,变量、函数的声明和定义很明了,如果我们要写出程序,所要掌握的基本上仅仅是语言的语法就行了。了解了语言的语法,该声明什么变量,该调用哪个函数,我们写程序的逻辑会很清晰。因为我们直接在与这些变量和函数打交道,中间并没有什么“中介”。要写MFC之类的界面程序呢?对于一个初学者,好像原创 2011-11-06 19:54:22 · 678 阅读 · 0 评论 -
多进程/多线程的同步
同步对象及常用API1、 事件事件(Event)是一个同步对象,它有两种状态:有信号状态和无信号状态。线程只有在事件有信号的时候才能获取事件,并设置事件为无信号状态,使得其他线程不能访问事件所保护的数据或代码段。线程使用完后应该将事件设置为有信号状态,以使其他线程能够使用。API:SetEvent:设置事件状态为有信号状态。CreateEvent:创建一个事件对象。Rese原创 2012-07-17 23:22:54 · 1913 阅读 · 0 评论 -
临界区使用方法实例
VC/MFC 临界区使用方法实例转载▼转载自新浪博客 临界区的作用:避免临界区内的数据(一般为共享的资源)被不同的线程同时访问,实现线程的同步操作。保证只能由先进入临界区的一个线程访问结束后,其他线程才可以继续访问共享的资源。以下为临界区的使用方法:*.h头文件:#include CRITICAL_SECTION m_cs转载 2012-07-17 23:43:09 · 9534 阅读 · 0 评论 -
细说 #pragma pack(n)
细说 #pragma pack(n)作者:一病挨踢 文章来源:http://blog.donews.com/kingle/archive/2005/07/02/451422.aspx 在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以转载 2012-09-10 22:08:16 · 1303 阅读 · 0 评论 -
#pragma 预处理指令详解
#pragma 预处理指令详解在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #pr转载 2012-09-10 22:12:17 · 773 阅读 · 0 评论 -
获取系统当前时间的方法
刚刚在写程序,想获取当前的系统时间保存在数据库中,一时忘了,查了下。SYSTEMTIME time; GetSystemTime(&time);//得到格林威治标准时间 GetLocalTime(&time); //得到当地的时间(我们为东八区的北京时间:P) 补充:SYSTEMTIME结构typedef struct _SYSTEMTIME {原创 2012-09-12 02:59:29 · 904 阅读 · 0 评论 -
进程间通信
[转载]Win32应用程序中进程间通信方法分析与比较[--- 资料是从免费网站上获取的,上载在这里,只为交流学习目的,文章原作者保留所有权力,如本博客的内容侵犯了你的权益,请与以下地址联系,本人获知后,马上删除。同时本人深表歉意,并致以崇高的谢意!erwin_609@msn.com ---]Win32应用程序中进程间通信方法分析与比较 来源:Intetnet转载 2012-07-12 15:10:11 · 1281 阅读 · 0 评论 -
构造函数中抛出的异常
转载自:http://se.csai.cn/ExpertEyes/200801031103481314.htm构造函数中抛出的异常 构造函数中抛出异常时概括性总结 (1) C++中通知对象构造失败的唯一方法那就是在构造函数中抛出异常; (2) 构造函数中抛出异常将导致对象的析构函数不被执行; (3) 当对象发生部分构造时,已经构造完毕的子对象将会逆转载 2012-10-10 11:07:44 · 916 阅读 · 0 评论 -
析构函数中抛出的异常
来源:http://se.csai.cn/ExpertEyes/No144.htm析构函数中抛出的异常作者:王胜祥 来源:希赛网 http://www.csai.cn 2005年5月16日 前两篇文章讨论了对象在构造过程中(构造函数)和运行过程中(成员函数)出现异常时的处理情况,本文将讨论最后一种情况,当异常发生在对象的析构销毁过程中时,又会有转载 2012-10-10 10:43:09 · 880 阅读 · 0 评论 -
Windows终止线程运行的四种方法
Windows终止线程运行的四种方法转载自百度空间终止线程运行 若要终止线程的运行,可以使用下面的方法: • 线程函数返回(最好使用这种方法)。 • 通过调用 ExitThread 函数,线程将自行撤消(最好不要使用这种方法)。 • 同一个进程或另一个进程中的线程调用 TerminateThread 函数(应该避免使用这种方法)。转载 2012-07-17 22:00:03 · 1239 阅读 · 0 评论 -
LINK : fatal error LNK1104: cannot open file "Dll1.lib"
写了个动态库Dll1.dll,想以静态形式掉用。我把.lib文件和.dll文件拷贝到了测试程序的debug目录下,编译的时候没错,链接错了,提示:LINK : fatal error LNK1104: cannot open file "Dll1.lib"。接着我把.lib文件放到工程目录下,即Debug的上一层目录下,错误就消失了。lib要放在工程目录下,因为工程目录是当前目录。原创 2012-03-29 18:46:04 · 5239 阅读 · 3 评论 -
使用perfmon监控系统性能
《编程之美》里边有个讲控制CPU占用率曲线的例题,里面讲到使用perfmon工具来帮助我们实现控制CPU占用率曲线的功能。perfmon工具可以监控系统的各个系能参数,在.NET Framework中也提供了操作perfmon的相应类。我们只要根据需要取得实例句柄进行操作就行。(注意,因为perfmon是一个程序实例,我们不能直接用new来实例化一个对象。)关于perfmon的知识,在MS原创 2011-11-09 18:23:42 · 4675 阅读 · 0 评论 -
MFC消息机制
上篇总体概述了编程方式的变化,这篇具体就MFC的消息机制进行简单的说明。MFC(Microsoft Foundation Class),微软基础类。在我看来,MFC就是由一个个封装类按照一些特定的规则构成的程序模板。这个模板中最重要的部分应该就是它的消息机制了。为了更好地了解MFC的消息机制,现将MFC消息机制进行简化,保留其最为重要的部分。MFC消息机制有两个重要的线程,一个是消原创 2011-11-06 21:37:04 · 1663 阅读 · 2 评论 -
MFC中框架文档视图结构的命令路由处理
命令处理的默认路由是:视图 -> 文档 -> 文档模板 -> 框架窗口 -> 应用对象。补充说明:菜单、工具栏等隶属于框架窗口,所以命令首先到达框架窗口。框架窗口得到命令消息后,按照上述的过程处理命令。要想改变默认的命令处理过程,定制自己的处理过程,则需要重载上述命令路由链中的某个对象的OnCmdMsg()函数。例如:下面的代码重载框架窗口的OnCmdMsg()函数,使得活动文档直原创 2011-11-07 18:42:42 · 688 阅读 · 0 评论 -
框架窗口和文档、视图的交互(MFC)
框架窗口与文档的交互:a、框架窗口 -> 文档 的过程:1、通过视图。视图都由与之关联的文档,而框架窗口是视图的容器,理所当然,框架窗口和文档的交互可以以视图为桥梁。在框架窗口中可以通过GetActiveView()可以得到活动视图的指针pView,接着pView->GetDocument()便可以得到与之关联的文档指针pDoc。利用这个指针框架窗口便可以对文档进行相关的操作原创 2011-11-07 18:52:00 · 1640 阅读 · 0 评论 -
定制字体(以静态文本框的字体为例)
1、首先获得文本框窗口的指针:CWnd *pWnd = GetDlgItem(ID_Static_MY);2、获得DC资源:CDC *pDC = pWnd->GetDC();3、创建字体:CFont font;font.CreateFont(50, 0,0,0, FW_HEAVY, // 字体的粗度,此为最粗0,0,0,ANSI_CHARSET,原创 2011-11-07 18:54:32 · 805 阅读 · 0 评论 -
文档视图框架简介
文档是程序的数据结构,CDocument的派生类对象。它负责程序数据的组织和维护,提供给程序的视图显示的数据。视图是程序的面,CView的派生类对象。它负责程序的面向客户的数据显示,并接受客户的请求,操作文档中的数据。每个View都有与之唯一关联的Document。在CView的派生类中的OnDraw函数中,通过GetDocument()返回与之关联的Document指针:pDoc。视图正原创 2011-11-07 18:58:50 · 863 阅读 · 0 评论 -
三种DLL(Win32DLL,MFC常规DLL和MFC拓展DLL)的简单学习总结
学习了三种动态链接库的基本知识,分别是Win32DLL,MFC常规DLL和MFC拓展DLL。 Win32DLL使用的是Win32的API实现的,只能导出函数,能被各种应用程序调用,适用范围最广。 MFC常规DLL是适用MFC创建的,就像MFC程序跟Win32程序的关系一样,MFC常规DLL和Win32DLL的关系也是如此。它使用MFC的机制,只能导出标准C函数。如此,它便可以被原创 2011-11-07 19:02:23 · 4622 阅读 · 1 评论 -
出现fatal error LNK1120: 1 unresolved externals的原因
在调用动态库时,出现 fatal error LNK1120: 1 unresolved externals的编译错误。原因有很多个,分两类。第一类是本工程的编译环境设置问题,另一类是库文件出问题。 第一类中,可能是在设置时没有设置对。参考网上的资料:在调用dll库的时候发现错误fatal error LNK1136: invalid or corrupt file原创 2011-11-07 19:04:49 · 143765 阅读 · 1 评论 -
在编辑框中动态显示当前时间,实现时钟功能
1、首先响应WM_TIMER事件,利用MFC ClassWizard添加WM_TIMER事件。2、然后在OnTimer()函数中添加处理代码,如下:void CMyDlg::OnTimer(UINT nIDEvent) { nIDEvent = 1; //指定定时器 CTime t = CTime::GetCurrentTime(); //获得当原创 2011-11-07 19:07:13 · 1923 阅读 · 1 评论 -
TCP三次握手/四次挥手详解
转载自:http://wanlong.blog.51cto.com/287340/114592写的很好,收录起来。TCP三次握手/四次挥手详解1、建立连接协议(三次握手)(1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。(2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标转载 2012-10-09 21:44:48 · 540 阅读 · 0 评论