
Windows编程/COM
Fenice
狂奔的蜗牛
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
进程死锁及解决办法
一、要点提示(1) 掌握死锁的概念和产生死锁的根本原因。(2) 理解产生死锁的必要条件–以下四个条件同时具备:互斥条件、不可抢占条件、占有且申请条件、循环等待条件。(3) 记住解决死锁的一般方法,掌握死锁的预防和死锁的避免二者的基本思想。(4) 掌握死锁的预防策略中资源有序分配策略。(5) 理解进程安全序列的概念,理解死锁与安全序列的关系。(6) 了转载 2012-10-10 17:40:30 · 1253 阅读 · 0 评论 -
MFC给按钮添加图片
VC中对话框上编辑里,通过控件方式无法给按钮设定图片的,需写代码实现,还好代码量不大,哈哈!首先建立基于对话框的MFC应用程序工程testDlg,添加按钮,ID为IDC_BUTTON_TEST,接下来一,首先建立位图句柄[cpp] view plaincopy// 方法一:加载非资源图片 HBITMAP hBitma原创 2014-03-28 22:20:25 · 905 阅读 · 0 评论 -
如何在Linux上运行Mono
众所周知,C#是Microsoft推出的.NET语言,只能在.NET平台上运行,例如Win 9x、ME、NT、2000、XP和Win CE之类的操作系统。但是,现在却有了一个叫做Mono的项目,它的目标就是把.NET及其编程语言移植到非Windows的平台上。现在,C#是唯一被移植到非Windows平台的.NET语言。 在任何一个平台(操作系统+硬件体系)上,编写和运行程序的三原创 2013-02-04 17:20:28 · 16576 阅读 · 0 评论 -
MFC让文档/视图结构程序支持滚动条
要通过滚动条显示文档,还必须知道文档滚动到了什么位置;一旦用户拖动滚动条时要告诉视图改变在文档中的位置。所有这些,由MFC的CSrollView类来完成。而程序员要做的工作是:1、从CScrollView类中派生自己的视图类,以支持滚动条2、提供文档大小,确定滚定范围和设置初始值3、协调文档位置和屏幕坐标一、有CScrollView类派生视图类使用A原创 2012-12-12 23:09:23 · 4099 阅读 · 0 评论 -
C++信号量 Semaphore 和 MFC中的 CSemaphore类使用
信号量(Semaphore)内核对象对线程的同步方式与前面几种方法不同,它允许多个线程在同一时刻访问同一资源,但是需要限制在同一时刻访问此资源的最大线程数目。在用CreateSemaphore()创建信号量时即要同时指出允许的最大资源计数和当前可用资源计数。一般是将当前可用资源计数设置为最大资源计数,每增加一个线程对共享资源的访问,当前可用资源计数就会减1,只要当前可用资源计数是大于0的,就可以发转载 2012-11-26 09:31:26 · 972 阅读 · 0 评论 -
略谈如何在对话框创建视图类画图
在对话框上画图可以通过添加控件来进行,但这种画图有一个严重弊端就是画图范围受控件范围控制。最近做一个程序,需要一个数据报告窗口,因为输出的内容比较多,格式不一致(涉及多个表,但每个表的数据要严格对齐),所以如ListControl等控件并不适合。所以我想到在对话框上创建视图类上进行数据显示。 一是视图窗口如何动态创建。首先是视图窗口的定位。一般的动态创建窗口定位窗口的位置不太容易。转载 2012-12-07 06:00:12 · 897 阅读 · 0 评论 -
在MFC中添加用户自定义消息
首先弄清楚两点:(1)谁要发送这个消息(2)谁要接受这个消息。 用一个简单的例子来说明。对象A向B(也可以就是A到A)发送消息。 1 发送消息 首先在A的头文件中定义这个消息: #define WM_USERMESSAGE WM_USER+30 所有自定义消息都是以WM_USER消息为基础加上一个任意的自然数来表示的。A是向外发送消息原创 2012-12-06 14:12:39 · 979 阅读 · 0 评论 -
使用临界区对象实现读,写线程同步
本例创建两个工作线程,通过使用CCriticalSection类对象,保证同一时刻只有一个线程可以访问临界区对象。开发过程:(1) .界面:(2) 在对话框类的实现文件的顶部定义全局CCriticalSection对象,全局资源和工作线程入口函数CCriticalSection g_cs; //临界区对象int g_data = 0;原创 2012-11-21 18:32:31 · 1035 阅读 · 0 评论 -
CCriticalSection类的使用
当多个线程访问一个独占性共享资源时,可以使用“临界区”对象。任一时刻只有一个线程可以拥有临界区对象,拥有临界区的线程可以访问被保护起来的资源或代码段,其他希望进入临界区的线程将被挂起等待,直到拥有临界区的线程放弃临界区时为止,这样就保证了不会在同一时刻出现多个线程访问共享资源。 CCriticalSection类的用法非常简单,步骤如下: 定义CCrit原创 2012-11-21 18:17:49 · 1714 阅读 · 0 评论 -
MFC如何从view类向自定义类中发送消息
1.在视图类中获取自定义类的指针(). 2.通过指针来向自定义类发送一个消息postmessage(); 3.在自定义类中的消息映射中自定义个消息来接受这一从视图类发来的消息。 4.最后写个自定义消息响应函数来处理消息(over)。原创 2012-12-05 15:47:56 · 2369 阅读 · 0 评论 -
线程的同步处理1
线程有很多便利但也有很多需要注意的问题.如何防止两个线程在同一时间访问同一数据,使隶属于同一个进程的各线程协调一致地工作称之为线程的同步.MFC提供了多种同步对象,如CEvent,CCriticalSection,CSemaphore,CMutex.另外MFC提供了线程的辅助类CSingleLock和CMutiLock。使用CEvent 对象实现线程同步:1. 首先在主原创 2012-11-20 20:44:35 · 636 阅读 · 0 评论 -
VC 坐标体系
1.逻辑坐标 LP 逻辑坐标就为独立于设备地,它与设备点地大小无关。使用逻辑单位,就为实现写出来"所见即所得"地基础。当程序软件代码员在调用1个画线地GDI函数functionLineTo,画出25.4mm(1英寸) 长地线时,他并非要考虑输出地就为何种设备。若设备就为VGA显示器,Windows自动将其转化为96个像素点;若设备就为1个300dpi地激光打印原创 2012-12-01 16:51:26 · 830 阅读 · 0 评论 -
Win32 API进程创建控制
对于控制进度条:创建一个全局结构体Threadinfo,存储进度条对象的信息typedef struct Threadinfo{CProgressCtrl *progress; //进度条对象int speed; //进度条速度int pos;原创 2012-11-07 19:24:04 · 2322 阅读 · 0 评论 -
ReadProcessMemory使用
函数功能描述:该函数用来读取指定进程的空间的数据,此空间必须是可以访问的,否则读取操作会失败!函数原型 BOOL ReadProcessMemory( HANDLE hProcess, // 目标进程句柄 LPCVOID lpBaseAddress, // 读取数据的起始地址 LPVOID lpBuffer, // 存放数原创 2014-06-08 23:13:53 · 20345 阅读 · 0 评论