C/C++
文章平均质量分 70
jtujtujtu
长期从事Windows下驱动程序开发,应用软件开发
展开
-
判断目录是否存在并创建目录
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Font原创 2008-10-28 11:47:00 · 2174 阅读 · 0 评论 -
zz: 如何使用try,catch, throw
zz: http://topic.csdn.net/u/20090404/00/16f638ac-4a6a-4e22-ad7b-58fd06efb35f.html?29315 经验分享,如何使用try,catch, throw之一 try,catch, throw的含义就很清楚,但怎么使用,我还是过了好多年才明白一些 先看一个不好的例子C/C++ code <!--Code转载 2009-06-05 14:48:00 · 2629 阅读 · 0 评论 -
基于 windbg 检查directshow(com)内存泄露
在使用com的过程中,发现无论是vs2005还是boundscheck都找不到内存泄露,但是程序一跑起来, 很快就上几十M的内存泄露. 找啊找啊找, 找了半天, 还是没发现. 求助同事, 他采用了windbg, 不过好像也不是那么简单, 很多时候甚至于需要一个函数一个函数通过console方式来进行测试. 总结一下, 在使用com编程的时候需要注意的地方:1,确保CoIni原创 2009-06-19 09:38:00 · 3247 阅读 · 0 评论 -
VS2010 使用 Derictshow 时遇到的问题
<br />之前一直采用VS2005,现成的Code直接搬到vs2010,编译时出现如下错误:<br />错误1:<br />1>e:/program files/microsoft visual studio 10.0/vc/atlmfc/include/afxglobals.h(375): error C2143: syntax error : missing ';' before '*'<br />1>e:/program files/microsoft visual studio 10.0/vc原创 2011-04-22 14:19:00 · 2698 阅读 · 0 评论 -
UTF-8 转 Unicode
UTF-8 转 Unicode 在编写FTP Client时,发现通过recv获取的数据是采用UTF-8方式进行编码的,直接用Unicode方式进行显示时会发生错误。采用MultiByteToWideChar也无法正确转换(default是Ascii to Unicode。是我的设置问题?没有仔细研究)。 因此学习了下UTF-8的编码原理,参考如下:标准的UTF-8原创 2011-07-01 16:14:00 · 1433 阅读 · 0 评论 -
Storport MSI (Message Signaled Interrupts)
最近在学习storport miniport Driver,在看到interrupt时,发现有两种方式,一种是通过HW_INITIALIZATION_DATA (Storport)中的HwInterrupt函数来响应,支持line-based interrupts和message-based interrupts;另外一种是通过PORT_CONFIGURATION_INFORMATION (Sto原创 2012-01-13 17:20:06 · 2454 阅读 · 0 评论 -
zz: C++11中值得关注的几大变化
zz From : http://blog.csdn.net/lanphaday/article/details/6564162赖勇浩(http://laiyonghao.com)声明:本文源自 Danny Kalev 在 2011 年 6 月 21 日发表的《The Biggest Changes in C++11(and Why You Should Care)》一文,转载 2012-01-30 09:49:05 · 570 阅读 · 0 评论 -
IPP 6.1 sample code中的compile error:'vswprintf' : too few arguments for call
在Ipp 6.1的sample code - Audio-Video-Codecs的compile过程中发现有提示Error:vm_file_win.c(1173): error C2198: 'vswprintf' : too few arguments for callvswprintf是一个MACRO,通过查看vswprintf的定义可以发现,他VC安装目录里有不同的定义,分别是原创 2012-03-12 15:16:50 · 2721 阅读 · 0 评论 -
Full screen检测方法
Windows下经常会遇到这样一个问题,检测是否有应用程序处于全屏状态,如果有,则需要做一些特别动作。笔者尝试过不同的方法,方法一,检测四个角点的hWnd,看他们是否是同一个window,通常对于播放器这种应用程序处于全屏时,会带有一个进度控制条,导致了四个角点属于两个不同的window。方法二,注册Desktop Toolbars,当有全屏幕程序打开或者关闭的时候都会有ABN_F原创 2012-07-20 14:54:49 · 2477 阅读 · 0 评论 -
MFC Dialog中F1自动弹出WinHelp窗口
ZZ: http://blog.csdn.net/silvervi/article/details/6445172 MFC中,键盘上的F1加速键会直接和基类的WinHelp函数关联,从而按下F1打开和应用同名的HLP文件。如果我们的帮助文件格式是其它格式,如chm,或者文件的名字不一样,则需要重载WinHelp函数,在函数内部修改m_pszHelpFilePath变量转载 2013-03-29 15:43:25 · 3708 阅读 · 1 评论 -
WDM Power IRP 学习 (一)
电源管理是WDM驱动的一个重点和难点,需要处理好,否则在测试、使用过程中很容易出现各种异常。最严重的就是 bug check 0x9F 相关的各种BSOD。这里简单介绍下,power Irp包括两类,一类是系统状态相关power Irp(system-irp),另一类是设备状态相关power Irp(device-irp)。我们在Driver Entry中注册的dispatch可以接受上述sy原创 2013-04-11 11:48:44 · 1878 阅读 · 0 评论 -
WDM Power IRP 讲解 (一)
xuexi 居然不能发??? 电源管理是WDM驱动的一个重点和难点,需要处理好,否则在测试、使用过程中很容易出现各种异常。最严重的就是 bug check 0x9F 相关的各种BSOD。这里简单介绍下,power Irp包括两类,一类是系统状态相关power Irp(system-irp),另一类是设备状态相关power Irp(device-irp)。我们在Driver E原创 2013-04-12 16:00:10 · 2030 阅读 · 0 评论 -
VS2010 如何缩减编译文件大小(statically linked MFC)
自从 VS2005 升级到 VS2010 之后,build出来的文件(exe、dll)就莫名的增大了很多,MSDN的blog上有一篇blog,详细描述了size增大的原因,以及缩减的方法。总结如下原因:size增大是因为DLGINIT 的引入。他允许在dialog上增加MFC控件。而这个function在static link的过程中会引入很多可能并不需要的function,因为在翻译 2013-05-09 10:26:03 · 5926 阅读 · 3 评论 -
zz: 自定义StartIo
ZZ from : http://www.joenchen.com/archives/424这个系统给的StartIo虽然好用, 但是很多时候我们还是需要使用自定义的StartIo例程的. 因为系统提供的只能使用一个队列.如果是我们自己建立的话, 可以建立多个队列. 灵活性高, 但是稍微复杂些. 其实要说复杂也不尽然, 用那个系统的时候感觉不是很好,因为封装的时候不给力, 还需要在我们自己转载 2013-07-25 15:42:32 · 1043 阅读 · 1 评论 -
WDM中通过driver name获取Driver Object并遍历此Driver产生的Device Object
这里需要用到一个未公开的(undocumented)API原创 2014-05-09 17:17:00 · 3614 阅读 · 0 评论 -
Intel Jpeg library 编译 x64 版本(ipp 6.0)
Ipp 6.0安装包,包括了ia32, em64t 以及 itanium。而 ijl 2.0 (intel jpeg library) 则放在了sample中给出, 如果需要自己编译 ijl2.0, 则需要下载w_ipp-samples_p_6.0.0.130.zip, 解压缩后,在ipp-samples/image-codecs/jpeg-ijl/ 下可见 build32.bat直接运行原创 2009-04-14 14:28:00 · 8516 阅读 · 43 评论 -
zz:利用SHBrowseForFolder 产生路径选择对话框 同时指向默认路径文件夹
如何打开选择路径对话框?现在就用一些代码来说明,如下。 TCHAR szPath[MAX_PATH]; BROWSEINFO br; ITEMIDLIST* pItem; br.hwndOwner = this->GetSafeHwnd(); br.pidlRoot = 0; br.pszDisplayName = 0; br.lpszTitle = "选择路径"; br.ulFla转载 2009-08-06 19:26:00 · 4908 阅读 · 5 评论 -
判断文件是否存在的方法
Study from csdn 1, _access() Function:if ((_access( filename , 0 )) != -1) //... file exitselse //... file does not exit int _access( const char *path, in原创 2009-07-27 11:13:00 · 1567 阅读 · 0 评论 -
流操作符的重载
关于操作符的重载,以前看过,不过很久不用已经不记得了直到昨天JJ问我 "coutC++中操作符重载有两种方式,一种是以成员函数的方式,另一种是以友元函数的方式。下面分别举例。成员函数方式:(以#include using namespace std;class A{public:A() {};~A() {};int data;A& operator};A& A::operator{ cou原创 2008-10-13 14:55:00 · 1131 阅读 · 0 评论 -
类内的const,static,mutable关键字
还是google编辑器好,可以自动保存,害我辛辛苦苦打了半天的字全部丢了题目中关键字经常在面试中被涉及到,这里简单介绍下他们的功能以及使用注意。 const 可以修饰成员变量、成员函数。const 修饰成员变量,表明该成员变量是一个const类型的,在定义后不能被修改,他通常在类内进行声明,在构造函数的初始化列表中进行初始化,这是因为我们不能给const变量赋值,因此只能通过初始化列表进行初原创 2008-10-14 15:05:00 · 1116 阅读 · 0 评论 -
动态改变基于CDialog的窗口的大小
动态更改对话框大小CRect rect;GetWindowRect(&rect);SetWindowPos(NULL, rect.left, rect.top, rect.Width()+deltaW, rect.Height()+deltaH, SWP_NOMOVE);动态更改控件大小CRect rect;CWnd* pWnd = GetDlgItem(IDC_XXXX);pWnd->GetWi原创 2009-01-08 15:24:00 · 4060 阅读 · 0 评论 -
OpenCV中IplImage 与 Gdiplus 中Bitmap之间的相互转换
Gdiplus::Bitmap转 IplImage// pIplImage 需要外部释放 Mosesyuan void CGeneral::BitmapToIplImage(Bitmap* pBitmap, IplImage* &pIplImg){ if (!pBitmap) { return; } if(pIplImg) { cvRele原创 2009-01-08 15:25:00 · 6868 阅读 · 17 评论 -
在正在播放的视频文件上叠加图片收藏
zz:http://blog.csdn.net/diskonline/archive/2008/04/10/2277828.aspx 介绍在正在播放的视频上显示一些图象似乎很难。在这里,我试图在一个视频上显示一个图片。并不是一个静止的图片,还要以动态的显示连续几张图片。升级我升级我的cVideo类用来动态显示几个图片。不仅这些,还要控制图片显示的透明度。看一下“深入DirectShow转载 2009-02-02 11:12:00 · 2372 阅读 · 0 评论 -
Save a video file with OpenCV
Saving a video file Initializing a video writer: CvVideoWriter *writer = 0;int isColor = 1;int fps = 25; // or 30int frameW = 640; // 744 for firewire camerasint frameH = 480; // 480 for firew转载 2009-02-02 16:59:00 · 1681 阅读 · 2 评论 -
YUY2(YUV) 与 RGB 格式图片的相互转换 以及 基于YUY2(YUV)的blending
YUY2经常用于电视制式以及许多摄像头的输出格式.而我们在处理时经常需要将其转化为RGB进行处理,这里简单介绍下YUY2(YUV)与RGB之间相互转化的关系:http://msdn2.microsoft.com/en-us/library/ms893078.aspx YUY2(YUV) To RGB:C = Y - 16D = U - 128E = V - 128R =原创 2009-02-10 16:39:00 · 20193 阅读 · 5 评论 -
vc中滑动控件slider的使用
滑动控件是Windows中最常用的控件之一。一般而言它是由一个滑动条,一个滑块和可选的刻度组成,用户可以通过移动滑块在相应的控件中显示对应的值。通常,在滑动控件附近一定有标签控件或编辑框控件,用于显示相应的值。滑动控件在应用程序中用途级为广泛,如在桌面的属性中就可以看到。为此,让我们一起来看一下它的实现方法。(1)在VC++ 6.0中新建一个对话框文档的工程。(2)打开资源管理转载 2008-12-02 13:33:00 · 1261 阅读 · 0 评论 -
VC 创建新进程,结束进程 (打开exe等可执行文件)
在VC程序中如何结束系统正在运行的其他进程(该进程必须有窗口界面),其实很简单,按如下步骤进行即可: 1.取得进程的句柄(利用FindWindow函数得到); 2.获取进程ID号(用GetWindowThreadProcessId函数获取); 3.打开进程,OpenProcess函数中的第一个参数设为PROCESS_TERMINATE,就可以获取处理该进程的句柄; 4.利用转载 2008-12-11 09:41:00 · 3887 阅读 · 0 评论 -
ZZ Windows 控制面板编程
ZZ From: http://blog.csdn.net/tomcui/archive/2008/01/22/2058502.aspxWindows 控制面板编程说明:本文章为本人在做项目时查阅相关文章而写成,如有不当之处,请指出。mail: [email protected]关键字:控制面板,控制面板应用程序, 一、 什么是控制面板转载 2008-12-12 14:19:00 · 2875 阅读 · 0 评论 -
如何注册 CPL 文件,使得可以在控制面板中显示
Registering Control Panel ItemsControlPanel items must be registered in order to appear in the Control Panelwindow. If the Control Panel item is implemented as part of a .exe filethen it is regi转载 2008-12-15 15:23:00 · 2725 阅读 · 0 评论 -
Gdiplus 读取并显示 Gif
Gdiplus提供的Bitmap支持读取并显示GIF文件.但是对于部分GIF图片可能会出现帧间间隔为0的情况,为此,在此情况下默认时间间隔为100ms, 不知道是不是我没有找对,有建议欢迎反馈! (测试在GIMP中同样会出现帧间间隔为0,我想应是有个默认值的吧,100ms效果还可以接受,暂且借用)#define UM_TIMER_GIFNEXTFRAME (WM_USER+0x01)原创 2009-03-31 19:18:00 · 3591 阅读 · 1 评论 -
用C++读写unicode文本
用C++读写unicode文本http://librawill.blogspot.com/2008/08/cunicode_2881.html熟悉一下字符类型,char, wchar_t, TCHAR,最熟悉的char是单字节字符,适用于ANSI编码;wchar_t是双字节的宽字符类型,适用于unicode编码;TCHAR是一个宏,在ANSI坏境下定义为char,unicode坏境转载 2009-03-31 16:50:00 · 5442 阅读 · 0 评论 -
DirectShow Filter 编译时遇到的问题 ---- error MIDL2025 : syntax error : expecting ]... || error C2504: 'IReferenceClockTimerControl' :
如果你的sdk安装有不同版本,譬如 Microsoft DrectX SDK(August 2007) 以及 Microsoft SDKS那么在你的VC directories中会出现两个或两个以上的 include directory如果 你需要编译的是最新的 Microsoft SDKS中的samples中的Filter1, 你需要在 VC directories中的inlude中原创 2009-04-14 14:21:00 · 5807 阅读 · 0 评论 -
Directshow 注册 source filter
编写source filter最初需要接触的就是 filter的register和unregister,涉及到的函数有两个DllRegisterServer()以及 DllUnregisterServer()在这两个函数中,完成了filter的register和unregister而其中真正的注册,又是通过IFilterMapper2::RegisterFilter() 和 I原创 2009-04-20 10:43:00 · 4849 阅读 · 2 评论 -
Memory Leak Detection Using Windbg(windbg检查内存泄漏)
zz from : https://www.codeproject.com/Articles/31382/Memory-Leak-Detection-Using-WindbgIntroductionMemory leak is a time consuming bug often created by C++ developers. Detection of mem转载 2017-07-04 10:23:21 · 1267 阅读 · 0 评论