一个在IT行业摸爬滚打的老司机
1 案例描述 作为Windows程序员,平时最担心见到的事情可能就是程序发生了崩溃(异常),这时Windows会提示该程序执行了非法操作,即将关闭。请与您的供应商联系。呵呵,这句微软的“名言”,恐怕是程序员最怕见也最常见的东西了。
一、C++成员变量初始化 1、普通的变量:一般不考虑啥效率的情况下 可以在构造函数中进行赋值。考虑一下效率的可以再构造函数的初始化列表中进行 2、static 静态变量(本地化数据和代码范围): static变量属于类所有,而不属于类的对象,因此不管类被实例化了多少个对象,该变量都只有一个。
一、什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。
深入理解计算机各种类型大小(sizeof) Cpp代码 // Example of the sizeof keyword size_t i = sizeof( int ); struct align_depends { ...
在InitInstance里边可以获取 1 2 3 4 5 6 7 8 9 10 11 12 if (bInit) { // TODO: 在此添加您自己的模块初始化代码。
先说实在的:最终解决办法是实现IDocHostUIHandler接口,在GetHostInfo方法里解决,但“实现接口”意味着QueryInterface、AddRef、Release三个方法必须实现,所以相关代码是:class CMyWebBrowser : public IDocHostUIHa...
摘要:数字签名SIGN保证控件在下载时候的安全性。如果你的代码已经经过数字签名,即使用户IE的安全设置很高也能下载,安装并登记。但是在页面上初始化,或者用脚本运行这个控件,为了保证安全性,还需要进行MARK。
我们在编写ActiveX控件时,如果用在浏览器中,经常都会弹出现在运行的脚本不安全的提示, 如果给客户使用,将会带来极大不便。按照MSDN的介绍通常有两种一种是实现IObjectSafe接口,一种是通过修改注册表的方法。
本文与 OCX控件避免弹出安全警告的类 http://www.cnblogs.com/lidabo/archive/2013/03/26/2981852.html 有些类似,只不过增加了几行代码(红色标注) 1.
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings/ZoneMap/Ranges] @="" [HKEY_CURR...
当我们通过 CWnd::CreateControl() 动态创建 ActiveX 控件时, Windows 消息并不会被发送给我 们的由 CWnd 派生得控件类。
特色 迅捷是一个功能强大的C/C++源代码分析软件。可以处理数百万行的源程序代码。支持标准及K&R风格的C/C++。对每一个打开的源代码工程,通过建立一个包含丰富交叉引用关系的数据库,显示其所含的各种信息:所有的源文件、所有的头文件、所有的代码文件、词汇索引、索引结果、文件包含关系、宏定义、数据结构和函数定义、可扩展的函数定义、函数调用关系、分文件夹的定义目录、构造层次、诊断性输出等。
绘制函数调用关系图对理解大型程序大有帮助。我想大家都有过一边读源码(并在头脑中维护一个调用栈),一边在纸上画函数调用关系,然后整理成图的经历。如果运气好一点,借助调试器的单步跟踪功能和call stack窗口,能节约一些脑力。
CodeViz是《Understanding The Linux Virtual Memory Manager》(at Amazon,下载地址在页尾)的作者 Mel Gorman 写的一款分析C/C++源代码中函数调用关系的open source工具(类似的open source软件有egypt、ncc)。
1 文档类 (1) Doxygen 参考站点:http://www.doxygen.org Doxygen是一种适合C风格语言(如C++、C、IDL、Java甚至包括C#和PHP)的、开放源码的、基于命令行的文档产生器。
局域网入侵最简单了。我教你方法,但教了你所惹出的事本人概不负责! 1.取得对方IP地址如XX.XX.XX.XX,方法太多不细讲了。 2.判断对方上网的地点,开个DOS窗口键入 TRACERT XX.XX.XX.XX 第4和第5行反映的信息既是对方的上网地点。
用一个实际代码来说明。 class A { public: staticvoid staticmember(){cout
此文章将介绍页面在 Windows 8 适用于桌面版的 Internet Explorer 中与在新 Windows UI 的 Internet Explorer 中的不同表现。 Windows 8 中的 Internet Explorer 10 提供了两种浏览体验:用户已熟悉的桌面浏览体验,以及新的 Windows 8 浏览体验。
win7下由于UIPI的限制, 高权限进程无法收到底权限进程发来的消息, 因此对窗口消息hook时无法接收到消息,解决办法是在调用SetWindowsHookEx之前先调用ChangeWindowMessageFilterEx, 该函数修改指定窗口的UIPI消息过滤设置。
在win7中用自己写的程序读取MBR时,突然提示无法对磁盘进行操作,而在xp下并没有这个问题;最后点右键以管理员身份运行才可以正常运行。于是想办法让程序在双击启动时默认以管理员身份运行。具体方法: 1.
用ATL开发和部署ActiveX网页控件 摘 要 ActiveX插件技术广泛的运用于B/S系统中,本文通过一个项目实例,详细介绍用ATL开发和部署ActiveX网页控件的过程。学习使用ActiveX让浏览器访问客户端的硬件资源。
症状描述: Accelerator keys, such as ARROW keys, are first received by the message pump of the ActiveX control's container.
CImageList ImageList;//创建一个包含3个24位色32x32图片的ImageList,ILC_MASK的意思是同时创建一个mask,这样在下面指定了背景颜色以后ImageList就可以画透明图像了ImageList.
对话框中的小红线可以被移动的 一、类名是 CBinarizationDlg 二、定义两个变量BOOL m_flag;int nPos;在构造函数初始化m...
对话框的种类 有两种类型的对话框:模态对话框和非模态对话框. 模态对话框时指当其显示时,程序会暂停执行,直到关闭这个模态对话框后,才能继续执行程序中的其他任务。 非模态对话框显示时,允许转而执行程序中其他任务,而不用关闭这个对话框。
C方式: 写: FILE *pFile = fopen("1.txt", "w"); fwrite("http://www.pcslonline.com", 1, strlen("http://www.
文件保存: //为FALSE,显示保存文件对话框 CFileDialog fileDlg(FALSE); fileDlg.m_ofn.lpstrTitle = "我的文件保存对话框"; fileDlg.
WM_CREATE消息 该消息是Windows发送给视图的第一个消息。由于当应用程序框架调用Create函数时该消息就会被发送,而此时窗口创建还未完成,窗口还不可见,因此在控制函数OnCreate内部,不能调用那些依赖于窗口处于完全激活状态的Windows函数。
这里主要用到了一个函数: BOOL SetWindowPos( const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags); 具体用法可以参看MSDN void CSYSLoaderDlg::On...
这里主要用到一个函数 UINT DragQueryFile( HDROP hDrop, UINT iFile, LPTSTR lpszFile, UINT cch ); hDrop: HDROP标识符,即响应函数中的hDropInfo参数 iFile: 待查询的文件索引号,从0开始。
一、NOTIFYICONDATA结构 NOTIFYICONDATA结构包含了系统用来处理托盘图标的信息,它包括选择的图标、回调消息、提示消息、图标对应的窗口等内容。其定义为: typedef struct _NOTIFYICONDATA { //以字节为单位的这个结构的大小 ...
1 最简单的办法:添加一个不可见的按钮,设为对话框的默认按钮即可 2 重载对话框的PreTranslateMessage消息处理BOOL CSIMDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code he...
最近在写一款山寨的反病毒软件,大致功能已经实现,还有一些细小的环节需要细化。 其中,在界面编程中,就用到了给ListCtrl控件着色,查看了网上一些文章,终于实现了。 其实说白了,原理很简单,就是ListCtrl在插入一个Item的时候,会发送一个NM_CUSTOMDRAW的消息,我们只要实现这个消息响应函数,并在里面绘制我们的颜色就可以了。
在StatusBar中显示当前时间,如下: 1.在String Table中插入一项 (注意:状态栏将根据字符串的长度来确定相应窗格的缺省宽度,所以指定为00:00:00就为时间的显示预留了空间) 2.
对话条是工具栏和无模式对话框相结合的产物,对话条和对话框类似,包含有标准的Windows控件,并且可以通过创建对话框模板来表示对话条。 伸缩条功能很强大,我们可以在伸缩条中直接增加CToolBar,CStatusBar和CDialogBar等类创建的控制条,如下: CReBar rb; rb.
1.建立一个基于对话框的工程,并在第二步中选择WOSA支持 2.建立客户端 (1)在头文件中添加成员变量 public: CSocket m_clientsocket; (2)每隔一秒钟向服务端发送一次数据 3.
1.建立服务端(发送端) (1)声明成员变量 public: CSocket m_sockSend; (2)每隔一秒钟发送一次数据 2.建立客户端(接收端) (1)声明成员变量 public: CSocket m_sockRev; (2)每隔一秒钟接收 一次数...
1.首先在界面上放置一个static text 控件 2.修改它的ID,并添加其控件成员变量CStatic m_staticIcon; 3.编写函数:
1.在CMainFrame中添加CSplitterWnd类型的成员变量: 2.新建几个派生于类CListView ,CEditView,CtreeView的类 3.在CListView ,CEditView的派生类中添加头文件:#include 4.
UINT DownloadFile(LPVOID pParam){ CWnd* pwnd = AfxGetMainWnd(); CProgressCtrl* m_Prog = (CProgressCtrl*)pwnd->GetDlgItem(IDC_PROGRESS1); CButto...
Q: 如何打开一个应用程序? ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW ); 或 ShellExecute(this->m_hWnd,"open","notepad.exe", "c:\\MyLog.log","",SW_SHOW ); 正如您所看到的,我并没有传递程序的完整路径。
1.锁定窗口,不进行刷新 m_list.LockWindowUpdate(); 2.设定列表不进行重画 m_list.SetRedraw(FALSE); 3.清空列表,删除历史数据 m_list.DeleteAllItems(); 4.窗口解锁,允许刷新。
前面提到了CImageList类的Create(...)函数,虽然MSDN上已经有所解释,但仍有网友问到参数的具体含义,下面就我的理解,对参数进行一次轻量级的剖析 函数原型(其他重载函数请参看msdn): BOOL Create( int cx, int cy...
一、JRTPLIB简介 老外用C++编写的开源RTP协议库,用来进行实时数据传输,可以运行在 Windows、Linux、 FreeBSD、Solaris、Unix和VxWorks 等多种操作系统上,主页为:http://research.
Ⅰ live555简介 Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包括MPEG、H.263+、DV、JPEG视频和多种音频编码。
一、流媒体简介 随着Internet的日益普及,在网络上传输的数据已经不再局限于文字和图形,而是逐渐向声音和视频等多媒体格式过渡。目前在网络上传输音频/视频(Audio/Video,简称A/V)等多媒体文件时,基本上只有下载和流式传输两种选择。
STL有字符串处理类——stirng和wstring,但是用的时候会觉得不是很方便,因为它不能像TCHAR一样根据定义的宏在char类型字符串和wchar_t进行转换,总不能因为程序要Unicode就把所有类型转换一遍吧?有没有好办法? 答案当然是肯定的,先看看MS的TCHAR是怎么做的,以下摘自MS Platform 的tchar.
本篇文章是对c++中的char*与wchar_t*与string以及wstring之间的相互转换进行了详细的分析介绍,需要的朋友参考下-复制代码 代码如下: #ifndef USE_H_ #define USE_H_ #include #include ...
这东西真是奇怪,找了半天原因,最终的发现却是让人抓狂,呵呵 现象:对话框按ESC或回车都不能关闭窗口(我没有处理PreTransplanteMessage),用spy++看,对话框完全收不到键盘消息 原因:我的对话框上有个控件的属性中设置了:Tab Stop,rc文件中看的话就是加上了WS_TABSTOP 解决:去掉tab stop风格! 唉,真是!#$%!$%!$%^@%^@#%&*!%$! 看来每一行代码都要细细想过之后才加,就像是处理MFC的消息,一样,最后要返回TRUE还是返回FALSE,不想清楚,就很可能会出问题。