- 博客(64)
- 资源 (2)
- 收藏
- 关注
原创 wince ini文件操作
<br />DWORD GetPrivateProfileString( LPCTSTR lpAppName, LPCTSTR lpKeyName, LPCTSTR lpDefault, LPTSTR lpReturnedString, DWORD nSize, LPCTSTR lpFileName){ FILE *f = NULL; DWORD dwRet = 0; ASSERT(lpReturnedString != NULL);
2010-05-31 20:48:00 1557
原创 vista声音控制
主程序:BOOL MuteDevice(BOOL bMute){ IMMDeviceEnumerator* pEnumerator; IMMDeviceCollection *pCollection = NULL; IMMDevice *pDevice=NULL; IPropertyStore *pProperties=NULL; IAudi
2008-06-24 11:23:00 4744 2
原创 键盘输入缓冲区与scanf()原理
键盘输入缓冲区与scanf()原理。键盘缓冲区用来缓存“按键”的ASCII码,而scanf()每次从键盘缓冲区中读取一个字符(ASCII码),直到键盘缓冲区为空。如果键盘缓冲区为非空状态,执行scanf()不会要求输入,如果键盘缓冲区为空,执行scanf()则会等待用户的输入。例如:执行下面的代码char a;while(1){ scanf("%c",&a);}第一次执行sca
2008-06-05 15:01:00 15603 3
原创 编写DLL过程中遇到的一些问题
关于编写DLL时,DEF文件(模板文件)的输出(EXPORTS)函数出现链接错误:其中.def文件如下:LIBRARY "usb_fm.dll"EXPORTS Initialize @1 private 链接错误信息如下: Linking...fm.def : warning LNK4022: cannot find unique match for
2008-06-03 23:44:00 1600
转载 深入浅出Debug和Release
Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。至于是否需要DLL支持,主要看你采用的编译选项。如果是基于ATL的,则Debug和Release版本对DLL的要求差不多。如果采用的编译选项为使用MFC动态库,则需要MFC42D.DLL等库支持,而Release版本需要MFC42.DLL支持。Release Build不对源代码进行调试,不考虑MFC的诊断宏,使
2008-06-03 22:37:00 672
原创 Release版本错误解决方案及调试
关于release版本调试信息不正确(指跟踪到的变量的值不正确)的问题:先写好了debug版本,并进行了测试,发现功能都正常。然后想build一个release版本,将出现的编译和链接错误都搞定后,运行测试功能,发现功能不正确。这种问题很头痛,只好去debug,一步一步跟踪发现变量的值都不正确,即使初始化了也一样,例如有这样的定义int a=1; 但发现a的值根本不是1.最后把编译环境中的Op
2008-06-03 22:18:00 5703
原创 关于filter动态重连后如何获取新的media type
class CMyPin : public CTransInPlaceInputPin{public: CMyPin::CMyPin(TCHAR *pObjectName,CTransInPlaceFilter *pFilter,HRESULT *phr, LPCWSTR pName); ~CMyPin() { }; STDMETHODIMP QueryAccept(const AM_MED
2008-05-05 21:20:00 929
原创 YUY2toRGB24 YUY2toYV12
#define MIN(x,y) (x)void YUY2toRGB24(BYTE *pDst, BYTE *pSrc){ /*for(long lSrc=0,lDst=0; lSrc { int C,D,E; C = *(pSrc+lSrc+0)-16; D = *(pSrc+lSrc+1)-128; E = *(pSrc+lSrc+3)-128; *(pDst+lDst+2) =
2008-05-05 20:58:00 1874
原创 容器之vector
vector容器类:#include std::vector MyVector;作为vector的元素,要求元素能够进行赋值和拷贝操作,即元素类型拥有赋值运算符和拷贝构造函数,如果元素类型是用户自定义类型,operator=和拷贝构造函数可以是用户定义的,也可以是编译器自动生成的。(注意编译器产生的有可能引发错误,例如类型的成员包含指针就有可能引起错误)。vector的特征:1.支
2008-04-19 20:32:00 1143 1
原创 STL容器类
第六章、STL容器1.当容器插入元素时将调用元素的拷贝构造函数,因此如果对我们自定义的类型使用容器,应该为自定义 类型提供拷贝构造函数,如果没有提供编译器将为我们自动生成一个拷贝构造函数,当在容器中插入自 定义类型元素时,将调用编译器生成的拷贝构造函数。容器类的共有操作:初始化操作:ContType c; 创建一个没有任何元素的空容器。ContType c1(c
2008-04-19 20:29:00 882
原创 关于DSHOW和COM学习一个疑点解析
关于DSHOW和COM学习一个疑点解析class CMyComponent : public CUnknown, public ISomeInterface{public: DECLARE_IUNKNOWN; STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void **ppv) {
2008-04-13 12:39:00 1818 1
原创 VS2003工程转VS2005工程遇到的一些问题
VS2003工程转VS2005工程:1.cpp文件include的h文件(头文件)必须和CPP文件在同一文件夹中,否则必须include整个路径Strmiids.lib(strmiids.obj) : error LNK2005: _IID_IMpeg2Data already defined in VVGraphBuilder.obj解决方法:/FORCE:MULTIPLE关于DEB
2008-04-01 21:54:00 5605
原创 CreateDIBSection
理解分辨率我们常说的屏幕分辨率为640×480,刷新频率为70Hz,意思是说每行要扫描640个象素,一共有480行,每秒重复扫描屏幕70次。 理解调色板有一个长宽各为200个象素,颜色数为16色的彩色图,每一个象素都用R、G、B三个分量表示。因为每个分量有256个级别,要用8位(bit),即一个字节(byte)来表示,所以每个象素需要用3个字节。整个图象要用200×200×
2008-03-31 17:55:00 7066
原创 bitmap知识
GDI基本概念及思想 编写代码的一般步骤:先用CreateDC创建(或GetDC获取)device content(DC),然后用GetObject获取(或使用创建object的函数创建)需要的object,并用SelectObject将获取的object选入device content(DC),再使用object进行相应的画图操作,最后用SelectObject将原来的object
2008-03-31 14:08:00 2658 1
原创 字符串
1. 关于在WIN32中使用MFC中的CString、LPCWSTR、LPSTR等,必须添加头文件atlstr.h。2. char* ,wchar*,char ch[10],tchar wch[10],LPSTR,LPCSTR,LPWSTR,LPCWSTR,CString等的转换问题。 对指针作强制转换注意:指针所指向的内容可能不完全,下面不用atoi就是因为这样这可能是因为C
2008-03-22 14:59:00 650
转载 CString
CString详细讲解(zz)CString详细讲解 前言:串操作是编程中最常用也最基本的操作之一。做为VC程序员,无论是菜鸟或高手都曾用过Cstring。而且好像实际编程中很难离得开它(虽然它不是标准C++中的库)。因为MFC中提供的这个类对我们操作字串实在太方便了,CString不仅提供各种丰富的操作函数、操作符重载,使我们使用起串起来更象basic中那样直观;而且它还提供了动
2008-03-22 14:33:00 685
原创 汇编学习笔记
本书不对硬件系统进行全面和深入的研究:关于PC机及CPU物理结构和编程结构的全面研究,在《微机原理与接口》中进行;对于计算机一般的结构、功能、性能的研究在一门称为《组成原理》的理论层次更高的课程中进行。汇编将研究重点放在如何利用硬件系统的编程结构和指令集有效灵活地控制系统进行工作。计算机的机器指令是一列二进制数字,计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行运算。每一种
2008-03-21 22:00:00 1966
转载 关于stdafx.h
stdafx.h头文件的作用 Standard Application Fram Extend没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行。Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重复处理这些文件就显得很傻
2008-03-21 21:22:00 978
原创 directshow
DirectShow开发点滴Setting Up the Build EnvironmentTools->Options->Projects->VC++ Directories->Include Files:C:/DXSDK/IncludeC:/DXSDK/Samples/C++/DirectShow/BaseClassesC:/DXSDK/Samples/C++/Di
2008-03-13 20:07:00 2654
原创 噪音及mixer
3524关于AC97声卡选择stereo mix录制的致命问题:如果客户端有声音传送到服务端(不论是通过什么方式,可以是stereo mix录制过来的,也可以是microphone录制过来的,或通过其它方式录制传送过来的),将导致服务端将客户端传送过来的声音也进行录制,然后在传送给客户端,因此导致声音变成噪音。而有的HD声卡,因为所有录制(stereo microphone line in等
2008-03-11 18:06:00 1807
转载 结构体大小问题
关于结构体大小的问题:typedef struct AA{int b1:5;int b2:2;}AA;sizeof(AA)==4;我想知道是为什么,有没有人知道?结果是4,我已经在vc下验证了。b1=5 bit , b2= 2bit。为什么加起来有4字节。而且这个b1,b2是按位分配的================因为两个都是int,所以类型相同,后面的字段就填充前一个字段直到不可以
2008-03-05 14:57:00 1117
转载 Programfan
从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。 ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:ASC码: 00110101 00110110 00110111 00111000 ↓ ↓ ↓ ↓十进制码: 5 6 7
2008-03-05 14:48:00 625
转载 什么是野指针?
野指针,也就是指向不可用内存区域的指针。通常对这种指针进行操作的话,将会使程序发生不可预知的错误。 “野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。野指针的成因主要有两种: 一、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指
2008-02-29 16:10:00 1080
原创 mixer函数
// This function is for muting volume of a specific line in// volume control panel by using the lines component type // as its parameter. It can mute Line In,Wave and Microphone // with parameters MI
2008-02-14 14:57:00 1068
原创 关于VS2005程序发布的问题
关于VS2005程序发布的问题:其实就是程序能否找到运行时所需要的DLL的问题。注意VS2003与VS2005的不同:VS2003程序产生时可以选择产生manifest文件也可以选择不产生,但VS2005必须产生。manifest文件可以是内嵌到程序的二进制资源文件中,也可以只产生一个外部的.manifest文件。因为VS2005生成的程序运行时需要根据它的manifest文件来获取程序运行时
2008-02-04 17:43:00 7145
原创 关于LNK4098MSDN中的一些说明
Linker Tools Warning LNK4098defaultlib "library" conflicts with use of other libs; use /NODEFAULTLIB:libraryYou are trying to link with incompatible libraries.Important The run-time librari
2008-01-20 23:31:00 2376
原创 关于LNK2001错误MSDN中的文章
Knowledge Base You receive an "error LNK2001: unresolved external symbol ___argc" error message when the MFC library and the CRT library do not match in debug/release or in static/dynamic in V
2008-01-20 23:28:00 913
原创 webcam开发过程中的一些错误
1. 设置编译环境时,注意头文件的包含顺序,可以通过查看编译错误调整头文件顺序.2. 关于VS2005中无法识别CSource,应添加头文件streams.h,而dshow.h没有用.3. 改写Filter和Pin的构造函数.4. Pin需要继承的两个纯虚拟函数:DecideBufferSize和FillBuffer.如果没改写,将出现编译错误,注意仔细查看这些编译错误,以找到问
2008-01-20 23:25:00 6139
原创 项目中一些常用函数
void EndSkype(){ HANDLE hSnapShot; LPCTSTR lpName = "Skype.exe"; hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); PROCESSENTRY32 processListStr; DWORD id = 0; pro
2008-01-20 13:19:00 755
转载 模块复用——c++类、dll和com
文章来源:http://dev.csdn.net/article/22/22976.shtm这篇文章只是对c++、dll和com的泛泛而谈,更为详细的内容请参考《com本质论》,这篇文章也算是《com本质论》第一章的读书笔记或总结。如有不对之处,希望大家批评指正。在windows下使用c++编写代码的人代码复用的常用方式大概就是c++类、dll和com一、c++代码重用的缺陷 以前的
2008-01-19 09:17:00 734
原创 链表
#include #include typedef int ElemType;/*typedef struct Link { ElemType *pElem; struct Link* next;}List;*/typedef struct Link { ElemType elem; struct Link *next;}List;/*void InitLi
2008-01-06 21:12:00 484
原创 线性表2
#include #include /*typedef struct Student { char* name; int nID;}ElemType;*/typedef int ElemType;#define SIZE 50struct List { ElemType elem[SIZE]; int nLength;};void InitList(struct List
2008-01-06 20:35:00 556
原创 线性表1
#include #include /*typedef struct Student { char* name; int nID;}ElemType;*/typedef int ElemType;struct List { ElemType *pElem; int nLength; int nSize;};void InitList(struct List *L,int nSize
2008-01-06 20:32:00 528
转载 带上三句话上路
带上三句话上路<!--google_ad_client = "pub-6952090322455314";google_ad_width = 234;google_ad_height = 60;google_ad_format = "234x60_as";google_ad_type = "text_image";//2007-06-25: 上左google_a
2007-12-22 15:48:00 773
转载 关于DLL解释得比较好的文章
关于DLL解释得比较好的文章 [引用]http://www.cnblogs.com/choi/archive/2006/08/11/474139.html 在Windows世界中,有无数块活动的大陆,它们都有一个共同的名字——动态链接库。现在就让我们走进这些神奇的活动大陆,找出它们隐藏已久的秘密吧! 初窥门径:Windows的基石 随便打开一个系统目录,一眼望去就能
2007-12-18 14:16:00 1080
转载 关于显式调用DLL、隐式调用DLL和查看DLL输出函数
摘录自:http://www.blogjava.net/wxb_nudt/archive/2007/09/11/144371.html DLL的优点简单的说,dll有以下几个优点:1) 节省内存。同一个软件模块,若是以源代码的形式重用,则会被编译到不同的可执行程序中,同时运行这些exe时这些模块的二进制码会被重复加载到内存中。如果使用dll,则只在内存中加载一次,所有使用该d
2007-12-09 20:26:00 1626
转载 网上摘录
.lib文件是在link的时候用 .dll文件是在Run的时候用 lib 是静态链接库 dll 是动态链接库 dll你需要和你的程序一起发布才行 lib编译后就不需要了 lib将在连接时把一些代码拷贝到你的程序代码里,所以叫做静态连接 dll是程序运行时把dll里的代码和资源加再到进程地址空间去,所以叫动态连接 动态链接与静态链接的不
2007-12-09 20:20:00 547
原创 总结
一、关于托盘制作1. 在对话框头文件中添加一个NOTIFYICONDATA类型的成员数据,用来设定托盘消息处理的方法,如下:NOTIFYICONDATA m_nid;添加一个名为ToTray的函数,用来初始化m_nid和托盘的一些信息,在对话框头文件中添加函数原型:void ToTray(void); 函数定义如下:void CSkypeTVDlg::To
2007-12-07 13:44:00 834
原创 混音器DEMO
#include "stdafx.h"void SetAudio(){ MMRESULT mmResult; HMIXER hMixer; MIXERCAPS mixercaps; MIXERLINE mixerline; memset(&mixerline,0,sizeof(MIXERLINE)); mixerline.cbStruct = sizeo
2007-12-03 19:22:00 1027
原创 Skype声音设置
Realtec AC97 Audio & USB EMP Audio Device麦克风 & Stereo Mix & 线路输入在选择默认设备或是Realtec AC97 Audio作为麦克风设备时,而要传出USB EMP Audio Device捕获的声音,则必须选择stereo mix(通过录制声卡的输出,再传送声音)或是选择麦克风,但此时要将耳塞放在麦克风旁边(这样麦克风才能够录制到声音
2007-12-03 19:19:00 10918 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人