随笔分类 -  VC++学习

【转】AddRef和Release的使用技巧
摘要:AddRef和Release实现的是一种名为引用计数的内存管理技术,这种技术是使组件能够自己将自己删除的最简单同时也是效率最高的方法。COM组件将维护一个称作是引用计数的数值。当客户虫组件取得一个接口时,此数值增1,当客户使用完某个接口后,此数值将减1。当此数值为0时,组件即可将自己从内存中删除。为正确的使用引用计数,需要了解一下三条规则:(1) 在返回之前调用AddRef。对于哪些返回接口指针的... 阅读全文
posted @ 2010-01-13 04:38 !-_-木糖-_-! 阅读(1311) 评论(0) 推荐(0)
【转】DirectShow VC6.0 开发环境的搭建
摘要:今天要用DirectShow做一个音频采集程序,结果遇到的第一个问题便是开发环境的搭建,需要几步准备。1)下载支持DirectShow的SDK2)将SDK中的include和lib目录配置到VC6.0下(一般SDK在安装过程中会自己配置)3)编译SDK中samples中提供的项目,得到Strmbasd.lib winmm.lib库文件,这个要在新建的DirectShow工程中引用第一步,我为了能够... 阅读全文
posted @ 2010-01-04 05:01 !-_-木糖-_-! 阅读(4130) 评论(0) 推荐(0)
【转】AfxBeginThread和CreateThread具体区别
摘要:1. 具体说来,CreateThread这个 函数是windows提供给用户的 API函数,是SDK的标准形式,在使用的过程中要考虑到进程的同步与互斥的关系,进程间的同步互斥等一系列会导致操作系统死锁的因素,用起来比较繁琐一些,初学的人在用到的时候可能会产生不可预料的错误,建议多使用AfxBeginThread,是编译器对原来的CreateThread函数的封装,用与MFC编程(当然,只要修改了项... 阅读全文
posted @ 2010-01-04 00:48 !-_-木糖-_-! 阅读(3194) 评论(0) 推荐(0)
多线程同步对象的比较
摘要:1. 互斥对象(Mutex)和事件对象(Even)都是内核对象,利用内核对象进行线程同步,速度较慢,但内核对象(Mutex、Even)可以为线程设置超时时间,以有效的解决线程死锁的问题。在多线程中可以在各个线程间进行同步(书上说的,不明白什么意思)。2.临界区(CriticalSection)工作在用户模式下,同步速度较快。但不能设置超时值,所以很容易进入线程死锁。3. Mutex和Even的区别... 阅读全文
posted @ 2010-01-03 00:49 !-_-木糖-_-! 阅读(788) 评论(0) 推荐(0)
【转】GetTextMetrics与GetTextExtent的区别
摘要:GetTextMetrics与GetTextExtent的区别 收藏 GetTextMetrics:获取当前字体的信息GetTextExtent:获取特定的字符串在屏幕上所占的宽度和高度CDC::GetTextMetrics作用:返回当前设备描述表中的当前所用的字体的信息函数原型:BOOL GetTextMetrics( LPTEXTMETRIC lpMetrics ) const;参数: lpM... 阅读全文
posted @ 2010-01-02 22:52 !-_-木糖-_-! 阅读(1758) 评论(0) 推荐(1)
【转】VC6.0附带小工具软件一览
摘要:工欲善其事,毕先利其器。今吾将VC6.0下的工具小试一遍,略知其功用,以备不时之需。简略作以总结,欲与众人共飨之。VC6.0附带工具软件:(1)ActiveX Control Test Container称为“ActiveX 控件测试容器”,顾名思义,此工具的主要功能就是测试ActiveX 控件,可以通过改变ActiveX 控件的属性观察控件的变化,也可以通过调用Activ... 阅读全文
posted @ 2010-01-01 17:47 !-_-木糖-_-! 阅读(477) 评论(0) 推荐(0)
【转】VC自带的工具SPY++使用
摘要:VC自带的工具SPY++使用2009-01-05 21:06VC自带的工具SPY++ 一直不会用,在网上找了一个篇文章,感觉比较好,拿来共享 呵呵用spy++查看消息,通过发送消息控制程序2007-01-11 21:42Windows程序都是基于消息机制的,每个程序中都会有各种各样的消息,如果想通过消息来控制程序的运行,我们只用关心程序中的命令消息(WM_COMMAND)就行了,其他关于程序界面等... 阅读全文
posted @ 2010-01-01 17:22 !-_-木糖-_-! 阅读(3109) 评论(0) 推荐(0)
【转】vc++编程经验总结
摘要:vc++如何实现远程调试 *假设调试机IP 192.168.0.182 远程机IP 192.168.0.161*远程机为调试机分配权限,使调试机可以使用远程桌面登陆到远程机器上(这样调试起来方便)。*调试机上安装visual studio .net 2003共享调试机上的Visual Studio上的远程调试目录(以我的机器为例)C:\Program Files\Microsoft Visual ... 阅读全文
posted @ 2010-01-01 16:28 !-_-木糖-_-! 阅读(543) 评论(0) 推荐(0)
【转】在MFC中获取窗口句柄
摘要:要找到某个CWnd对象的HWND,用GetSafeHwnd()。在窗口类中,有句柄的成员变量,可以直接访问: m_hWnd 在窗口类外,可以用AfxGetMainWnd()->m_hWnd获得。在MainFrame里直接用this; 其它地方用 CMainFrame* pMainFrame = (CMainFrame*)theApp.m_pMainWnd; 想得到一个控件的的句柄Get... 阅读全文
posted @ 2010-01-01 01:30 !-_-木糖-_-! 阅读(5403) 评论(0) 推荐(1)
【转】VC++常用数据类型使用转换详解
摘要:刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文将介绍一些常用数据类型的使用。我们先定义一些常见类型变量借以说明inti=100;longl=2001;floatf=300.2;doubled=12345.119;charusername[]="程";chartemp[200];char*buf;CStringstr;_variant_tv1;_bstr_tv2;一、其它数据类型转换... 阅读全文
posted @ 2009-12-31 19:37 !-_-木糖-_-! 阅读(982) 评论(0) 推荐(0)
vc++中的相对路径说明
摘要:在#include“”包含文件时,使用相对路径名跟安全。如,假定现有绝对路径如下A:/B/C/D/E.txtA:/B/C/D/F.txtA:/B/C/D/G.txtD:/B/C/D/E.txt其中A是驱动器,假定#include所在文件为:A:/B/C/D/E.txt那么在#include中包含字符串“/”等同于包含“A:/”... 阅读全文
posted @ 2009-12-31 18:28 !-_-木糖-_-! 阅读(3703) 评论(1) 推荐(0)
【转】ANSI,Unicode有什么区别
摘要:首先DBCS是亚洲的字符集,包含了ANSI,ANSI也就是ASCII值为0-255之间的字符,当字符为ANSI时,存放于文件中占用的是一个字节。如果是非ANSI的呢,则占用两字节。用VB的ASC函数可以很容易得到一个字符的DBCS值(或是说ANSI值吧)假如一个字符得到的DBCS值为&H1234,当然,这个值是转换成了十六进制的,因为对于磁盘存放来说,一般使用位(BIT),即二进制存放,而... 阅读全文
posted @ 2009-12-07 00:45 !-_-木糖-_-! 阅读(946) 评论(0) 推荐(0)
【转】MSDN中关于OnDrawItem的说明
摘要:afx_msg void OnDrawItem( int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct );ParametersnIDCtl 存储发送WM_DRAWITEM 消息的控件ID,如果是菜单发送的,nIDCtl 的值为0。lpDrawItemStruct 一个指向DRAWITEMSTRUCT 结构体的指针,该结构体保存有关要被绘制的项目与绘制所需要的... 阅读全文
posted @ 2009-12-06 18:35 !-_-木糖-_-! 阅读(4886) 评论(0) 推荐(0)
【转载】MFC数据类型(Data Type)
摘要:BOOL:Boolean值(布尔值,不是TRUE就是FALSE)BSTR:32-bit字符指针BYTE:8-bit整数,未带正负号COLORREF:32-bit数值,代表一个颜色值DWORD:32-bit整数,未带正负号LONG:32-bit整数,带正负号LPARAM:32-bit数值,作为窗口函数或callback函数的一个参数LPCSTR:32-bit指针,指向一个常数字符串LPSTR:32-... 阅读全文
posted @ 2009-11-30 23:59 !-_-木糖-_-! 阅读(636) 评论(0) 推荐(1)
CDialog中的执行路径
摘要:基于对话框的应用程序与基于SDI和MDI的程序,在程序执行路径上有所不同。对话框的执行路径是:1.刚开始都是差不多的:_tWinMain——>AfxWinMain——>theApp.InitInstance()2.接下来有所不同:theApp.InitInstance()——>int nResponse = ... 阅读全文
posted @ 2009-11-30 21:50 !-_-木糖-_-! 阅读(2411) 评论(0) 推荐(0)
关于GetDC与GetWindowDC 的区别
摘要:GetDc函数:用于获得hWnd参数所指定窗口的客户区域的一个设备环境。所获得的设备环境可以是通用、类或者私有类型,具体由指定窗口的类风格决定。对于通用设备环境,GetDc函数每次获取一个设备环境时都会用默认属性对它进行初始化。该函数获得的类和私有设备环境会与它们最后一次的设置保持一致。当设备环境不再需要时,应该调用ReleaseDC函数将其释放。GetWindowDC函数:返回hWnd参数所指定... 阅读全文
posted @ 2009-11-29 01:30 !-_-木糖-_-! 阅读(2269) 评论(0) 推荐(0)
VC++ 出现错误:cannot convert from 'const char [7]' to 'LPCWSTR'和 宏 _T()用处
摘要:解决方法:方法一:  菜单栏->project->xxx properties->Configuration Properties->General->Character Set,改成“not set”或改成“Use Multi-Byte Character Set”。方法二:  在const char前加上_T宏,进行... 阅读全文
posted @ 2009-11-24 02:12 !-_-木糖-_-! 阅读(6995) 评论(0) 推荐(0)