
VC++
文章平均质量分 90
一秀
这个作者很懒,什么都没留下…
展开
-
CHtmlView中判断页面加载完成
在CHtmlView中,有下面2个接口函数对应上面的2种JS写法。IHTMLWindow2::put_onload(VARIANT v); // 或者 IHTMLWindow3::attachEvent( BSTR event, IDispatch *pDisp, VARIANT_BOOL *pfResult ); 看到了转载 2013-07-20 17:50:06 · 1064 阅读 · 0 评论 -
添加控制台调试【Console】
#include #include #include static int WriteConsoleOfMine(char *format, ...){ const int BUFFER_SIZE = 1024; char buffer[BUFFER_SIZE]; va_list argptr; int cnt; va_start(argptr,format);//#inc原创 2013-07-28 15:57:02 · 866 阅读 · 0 评论 -
CString,BSTR,LPCTSTR 之间的关系【BSTR,_bstr_t, CComBSTR】
CString ,BSTR ,LPCTSTR之间关系和区别 CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常量的TCHAR指针。 CString 是一个完全独立的类,动态的TCHAR数组,封装了 + 等操作符和字符串操作方法。 typedef OLECHAR FAR* BSTR; typed转载 2013-07-21 11:03:11 · 825 阅读 · 0 评论 -
打造最强的VC++6.0 IDE
一、准备:确保已经正确完全安装 VC6, 再下个补丁, SP6, 下载地址:http://download.microsoft.com/download/1/9/f/19fe4660-5792-4683-99e0-8d48c22eed74/Vs6sp6.exe二、支持C++标准:VC6 好了の,再加个支持C++标准的,据说提高程序性能的 Intel C++ 8.1, 也转载 2013-07-25 13:34:07 · 1183 阅读 · 0 评论 -
ATL X2X字符串转换宏【谨慎使用】
#include TCHAR *W2T_(WCHAR *lpw){ USES_CONVERSION;//调用ATL的x2x宏的时候别忘这句 return W2T(lpw);}//TCHAR 转 BSTRTCHAR *tstr = "BSTR字符串,释放了没有,不然内存爆死你!";BSTR *bstr = T2BSTR(tstr);SysFreeString(bstr);/原创 2013-07-25 20:45:48 · 919 阅读 · 0 评论 -
static_cast、dynamic_cast、reinterpret_cast、const_cast,指针,数据类型的强制转换
关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++ 的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。下面对它们一一进行介绍。转载 2013-07-26 13:32:30 · 638 阅读 · 0 评论 -
extern用法详解
1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。2 问题:extern 变量 在一个源文件里定义了一个数组:char a[6]; 在另外一个文件里用下列语句进行了声明:extern char *a; 请问,这样可以吗?转载 2013-07-27 19:01:43 · 485 阅读 · 0 评论 -
HRESULT返回值说明
如果函数正常执行,则返回 S_OK,同时真正的函数运行结果则通过参数指针返回。如果遇到了异常情况,则COM系统经过判断,会返回相应的错误值。HRESULT 值 含义S_OK 0x00000000 成功S_FALSE 0x00000001 函数成功执行完成,但返回时出现错误E_INVALIDARG转载 2013-07-27 19:18:11 · 782 阅读 · 0 评论 -
socket编程的select模型
在掌握了socket相关的一些函数后,套接字编程还是比较简单的,日常工作中碰到很多的问题就是客户端/服务器模型中,如何让服务端在同一时间高效的处理多个客户端的连接,我们的处理办法可能会是在服务端不停的监听客户端的请求,有新的请求到达时,开辟一个新的线程去和该客户端进行后续处理,但是这样针对每一个客户端都需要去开辟一个新的线程,效率必定底下。 其实,socket编程提供了很多的模型来转载 2015-03-26 21:14:13 · 515 阅读 · 0 评论 -
运行时出现Stack overflow错误
大家都知道,Windows程序的内存机制大概是这样的,全局变量(局部的静态变量本质也属于此范围)存储于堆内存,该段内存较大,一般不会溢出; 函数地址、函数参数、局部变量等信息存储于栈内存,VC6中栈内存默认大小为1M,对于当前日益扩大的程序规模而言,稍有不慎就可能出问题。(动态申请的内存即new出来的内存不在栈中)即如果函数这样写:void test_stack_overflo转载 2015-03-24 15:10:23 · 3259 阅读 · 0 评论 -
User breakpoint called from code at XXX 问题分析汇总
分析一,转自独奏的同名Blog 今天调试程序时在Debug版跳出这个错误,我程序根本没设置断点,而其好像说是我的堆有问题,而编译了个Release版本运行正常,后来google下,查到如下解释: 说是调试状态下,操作系统用DebugWin32Heap来替代正常的heap分配内存空间。在这个堆上的任何操作debug的堆管理器会检查堆的数据完整性,如果它发现了一个错转载 2015-03-24 15:07:38 · 2236 阅读 · 0 评论 -
setsockopt、getsockopt详细介绍
一、 int PASCAL FAR setsockopt( SOCKET s, int level, int optname, const char FAR* optval, int optlen); 设置套接口的选项。 s:标识一个套接口的描述字。 level:选项定义的层次;目前仅支持SOL_SOCKET和IPPROTO_TCP层次。 optname:需设置的选项。 opt转载 2015-04-07 15:28:31 · 2605 阅读 · 0 评论 -
Wininet、WebBrowser编程中如何管理Cookie
用VC++访问网页,一般都是用微软提供的Wininet、WinHTTP(基于HTTP协议)或WebBrowser(加载整个网页)。当然还有libcurl之类的第三方类库,因为暂时没接触过,就不说了。在使用上述三种方式访问网页的编程过程中,默认情况下是由它来管理Cookie,但有时候程序员想手工干预,比如清除Cookie、修改Cookie、添加Cookie。在网上搜索了一下,大概有这么三种方转载 2015-11-16 09:29:28 · 751 阅读 · 0 评论 -
VC中常见的108个问题
(1) 如何通过代码获得应用程序主窗口的指针?主窗口的指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd()->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.(2) 确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。Exa转载 2013-07-21 12:21:18 · 1175 阅读 · 0 评论 -
MFC开发必须了解的常用宏和指令
1、#include指令 包含指定的文件 2、#define指令 预定义,通常用它来定义常量(包括无参量与带参量),以及用来实现那些“表面似和善、背后一长串”的宏,它本身并不在编译过程中进行,而是在这之前(预处理过程)就已经完成了 3、#typedef指令常用来定义一个标识符及关键字的别名它是语言编译过程的一部分,但它并不实际分配内存空转载 2013-07-21 12:13:46 · 686 阅读 · 0 评论 -
动态创建控件,并绑定事件
1.建立控件ID号: ID号是控件的标识,创建控件前必须先为它设置一个ID号。 打开资源中的“String Table”,在空白行上双击鼠标,这时会弹出一个ID属性对话框,在其中的ID编辑框中输入ID,如:IDC_MYBUTTON,在Caption中输入控件标题或注解(注:Caption框不能为空,为空会导致创建失败),这里我输入的是按钮上要显示的文字--动态按钮。转载 2013-07-21 10:33:42 · 1509 阅读 · 0 评论 -
CHtmlView 在 Dialog 中实现浏览网页
1 派生一个CDocument类,并设置对话框为该类的友元,如:class CXXDlg;class CMyDocument : public CDocument{ DECLARE_DYNCREATE(CMyDocument) friend class CXXDlg;public: CMyDocument(); virtual ~CMyDocum转载 2013-07-21 11:15:03 · 562 阅读 · 0 评论 -
GDI+图象处理
MSDN Magazine C++Q&A Paul DiLascia March 2002 Displaying a JPG in your MFC Application October 2001 Do You Have a License for that GIF? Plat转载 2013-07-21 11:16:20 · 683 阅读 · 0 评论 -
VC中使用ADO操作数据库的方法
(1)、引入ADO类#import "c:\program files\common files\system\ado\msado15.dll" \ no_namespace \ rename ("EOF", "adoEOF") (2)、初始化COM 在MFC中可以用AfxOleInit();非MFC环境中用:CoInitialize(NULL);转载 2013-07-21 11:39:09 · 772 阅读 · 0 评论 -
CListBox 带有复选框
由于实际需要在项目中需要使用一个带有复选框的列表控件,没错,VB、Delphi……里现成就有,但由于项目是VC工程,VC里现成的CListBox或CListCtrl都没有复选框。说到这里,高手们可能会说,简单,自已重绘一个,或者偷懒一点的方法,也可以去网上找一个别人做好现成的类来用。 其实还有一个更轻松的方法,网上找到这样一段话: How to use the CCheck转载 2013-07-21 10:56:09 · 1110 阅读 · 1 评论 -
GridCtrl 控件说明
如果想在你的工程中使用这个Grid控件的话,你还得在你的工程中添加一些文件:gridctrl.cpp, gridctrl.h Grid控件资源文件和头文件gridcellbase.cpp, gridcellbase.h 单元格的基础类gridcell.cpp, gridcell.h 单元格的默认执行文件CellRange.h CcellID和CcellRange类的定义MemD转载 2013-07-21 11:20:01 · 4224 阅读 · 1 评论 -
VC6 Bug 集合
1.在编辑状态下发现成员变量或函数不能显示提示是如何打开显示功能这似乎是目前这个Visual C++ 6.0版本的一个bug,可按如下步骤使其正常,如再出现,可如法炮制:(1)关闭Project(2)删除“工程名.ncb”文件(3)重新打开工程2.如何将一个通过ClassWizard生成的类彻底删除 首先在工作区的FileView中选中该类的.h和.cpp转载 2013-07-20 17:26:31 · 1131 阅读 · 0 评论 -
cannot find the definition (implementation) of this function 解决方法
使用vc6 在点击左侧class view中的一个方法实现时出现下面错误 cannot find the definition (implementation) of this function 解决方法:删除工作目录下面的*.opt *.ncb *.plg *.aps然后rebuld all转载 2013-07-21 10:41:00 · 1176 阅读 · 0 评论 -
GetMessage 与 PeekMessage 区别
a。GetMessage类似于SendMessage. 有消息才会传回, 否则是阻塞的...,同时取出(删除)?原队列的消息. b。 PeekMessage 类似于PostMessage ,没有消息也立即返回, 同时有选项选择是否删除原消息...1. GetMessage()只有在接收到消息后才将控制权转给你的程序,而PeekMessage()无论有没有消息都会将控制权转给你的转载 2013-07-21 11:17:15 · 660 阅读 · 0 评论 -
GetPixel 取像素点
函数原型:;COLORREF GetPixel(HDC hdc, int nXPos, int nYPos) 参数: hdc:设备环境句柄。 nXPos:指定要检查的像素点的逻辑X轴坐标。 nYPos:指定要检查的像素点的逻辑Y轴坐标。 返回值:返回值是该象像点的RGB值。如果指定的像素点在当前剪辑区之外;那么返回值是CLR_I转载 2013-07-21 11:19:04 · 5456 阅读 · 0 评论 -
菜单简单操作
1。CMenu::CheckMenuItemUINT CheckMenuItem( UINT nIDCheckItem, UINT nCheck );添加或者去掉选中标记nCheck:MF_CHECKED or MF_UNCHECKED with MF_BYPOSITION or MF_BYCOMMAND nIDCheckItem:如果nCheck为MF_BYC转载 2013-07-21 11:40:03 · 696 阅读 · 0 评论 -
自画 CComboBox 控件注意事项
Office2000系列软件(Software)地工具栏顶都有1个字体选择组合框,它有三大特色,1就为具有扁平及鼠标热点地效果,二就为字体地样式在下拉列表框中直接可见,即用相应地字体来绘制字体名称,三就为将最近使用过地字体列在下拉列表框地顶端,方便下次使用。 那么,俺们如何在程序软件代码中实现写出来此种功能呢? Windows地基本程序软件控件,如列表框、组合框及按钮(Bu转载 2013-07-21 11:49:22 · 1508 阅读 · 0 评论 -
cookie解密
一、前言 Cookies想必所有人都了解, 但是未必所有人都精通。本文讲解了Cookies的各方面知识,并且提出来了最佳实践。这是笔者在日常工作中的积累和沉淀。 二、基础知识 1.什么是 CookiesCookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息。例如,转载 2015-11-16 09:43:00 · 2036 阅读 · 0 评论