C++

摘要: 首先,只要遵守COM规范,不用COM库也能编写COM程序,那相当于自己实现用到的COM库函数。本篇COM如果单独出现,指COM库。阅读全文
posted @ 2010-01-29 14:17 吴碧宇 阅读(424) | 评论 (0) 编辑
摘要: C/C++ 编程语言的最强大功能之一便是其动态分配和释放内存,但是中国有句古话:“最大的长处也可能成为最大的弱点”,那么 C/C++ 应用程序正好印证了这句话。在 C/C++ 应用程序开发过程中,动态分配的内存处理不当是最常见的问题。其中,最难捉摸也最难检测的错误之一就是内存泄漏,即未能正确释放以前分配的内存的错误。偶尔发生的少量内存泄漏可能不会引起我们的注意,但泄漏大量内存的程序或泄漏日益增多的程序可能会表现出各种 各样的征兆:从性能不良(并且逐渐降低)到内存完全耗尽。更糟的是,泄漏的程序可能会用掉太多内存,导致另外一个程序垮掉,而使用户无从查找问题的真正根源。此外,即使无害的内存泄漏也可能殃及池鱼。阅读全文
posted @ 2009-12-16 09:23 吴碧宇 阅读(252) | 评论 (0) 编辑
摘要: 使用ATL COM我觉得首先应该学习接口。也就是说学习如何让JS,C# 等很方便就可以很好的使用你的COM。 而这些接数的通用数据类型中,SAFEARRAY,VARIANT,IDispatch,都是十分重要的,下面就简单的给出几个使用SAFEARRAY的列子。 以即用COM多线程完成伪异步调用COM的列子阅读全文
posted @ 2009-07-02 14:12 吴碧宇 阅读(272) | 评论 (0) 编辑
摘要: 现在COM组件的使用越来越广泛,在各个程序中调用COM组件我想大家都遇到过,这篇文章就是关于COM组件的编写和调用的,主要包含了使用VC6.0编写和调用COM组件,VS2005中使用C#编写和调用COM组件,以及在VC6.0和VS2005之间互相调用COM组件。阅读全文
posted @ 2009-03-12 22:50 吴碧宇 阅读(230) | 评论 (0) 编辑
摘要: com 连接点 事件阅读全文
posted @ 2009-03-10 16:22 吴碧宇 阅读(1376) | 评论 (0) 编辑
摘要: SafeArray是VB中的数组存储方式。通过SafeArray,可以在VC++和VB间相互调用。SafeArray也是Automation中的标准数组存储方式。 阅读全文
posted @ 2009-03-02 14:50 吴碧宇 阅读(490) | 评论 (0) 编辑
摘要: 要求是很简单的,即有COM组件A在IE中运行,使用JavaScript(JS)调用A的方法longCalc(),该方法是一个耗时的操作,要求通知IE当前的进度。这就要求使用回调函数,设其名称为scriptCallbackFunc。实现这个技术很简单: 阅读全文
posted @ 2009-02-11 14:56 吴碧宇 阅读(519) | 评论 (0) 编辑
摘要: 1.普通继承+父类无virtual函数 2. 普通继承+父类有virtual函数 3.virtual继承 4.多重继承阅读全文
posted @ 2009-01-15 23:05 吴碧宇 阅读(629) | 评论 (0) 编辑
posted @ 2009-01-09 13:35 吴碧宇 阅读(283) | 评论 (0) 编辑
摘要: ADO 是目前在Windows环境中比较流行的客户端数据库编程技术。ADO是建立在OLE DB底层技术之上的高级编程接口,因而它兼具有强大的数据处理功能(处理各种不同类型的数据源、分布式的数据处理等等)和极其简单、易用的编程接口,因而得到了广泛的应用。而且按微软公司的意图,OLE DB和ADO将逐步取代 ODBC和DAO。现在介绍ADO各种应用的文章和书籍有很多,本文着重站在初学者的角度,简要探讨一下在VC++中使用ADO编程时的一些问题。我们希望阅读本文之前,您对ADO技术的基本原理有一些了解。阅读全文
posted @ 2008-12-19 17:32 吴碧宇 阅读(669) | 评论 (0) 编辑
摘要: 要实现这个目标,非stringstream类莫属。这个类在头文件中定义, 库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。另外,每个类都有一个对应的宽字符集版本。简单起见,我主要以stringstream为中心,因为每个转换都要涉及到输入和输出操作。示例1示范怎样使用一个stringstream对象进行从 阅读全文
posted @ 2008-12-19 17:22 吴碧宇 阅读(345) | 评论 (0) 编辑
posted @ 2008-12-03 12:10 吴碧宇 阅读(183) | 评论 (0) 编辑
posted @ 2008-12-03 01:36 吴碧宇 阅读(2505) | 评论 (0) 编辑
posted @ 2008-12-03 01:08 吴碧宇 阅读(4844) | 评论 (0) 编辑
摘要: 1.打开Visual Studio 2008 命令提示窗口 2.进入F:\Develop\boost_1_37_0 C++\boost_1_37_0\tools\jam\src 3.执行 build.bat 会在F:\Develop\boost_1_37_0 C++\boost_1_37_0\tools\jam\src\bin.ntx86 生成 bjam.exe 文件. 4.Copy bjam.exe 文件到 F:\Develop\boost_1_37_0 C++\boost_1_37_0 下. 5.修改 F:\Develop\boost_1_37_0 C++\boost_1_37_0\tools\build\v2\user-config.jam 找到下面的地文 阅读全文
posted @ 2008-12-02 01:23 吴碧宇 阅读(814) | 评论 (2) 编辑
摘要: 在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。阅读全文
posted @ 2008-11-30 12:21 吴碧宇 阅读(5997) | 评论 (0) 编辑
摘要: 什么是正则表达式?正则表达式是一种用来描述一定数量文本的模式。Regex代表Regular Express。 如果您不知道什么是正则表达式,请看这篇文章http://blog.csdn.net/begtostudy/archive/2007/11/11/1879206.aspx阅读全文
posted @ 2008-11-30 02:05 吴碧宇 阅读(6423) | 评论 (1) 编辑
posted @ 2008-11-20 17:29 吴碧宇 阅读(575) | 评论 (0) 编辑
posted @ 2008-11-20 17:00 吴碧宇 阅读(123) | 评论 (0) 编辑
posted @ 2008-11-17 10:31 吴碧宇 阅读(2233) | 评论 (0) 编辑
摘要: 产生对象 IRQL名称 用途 1、 硬件 HIGH_LEVEL 机器校验和总线错误 2、 POWER_LEVEL 电源故障中断 3、 IPI_LEVEL MP系统处理器间门铃 4、 CLOCK2_LEVEL 间隔时钟2 5、 CLOck1_LEVEL 间隔时钟1 6、 PROFILE_LEVEL 配置文件计时器 7、 DORQL IO设备中断的平台依赖行等级数 8、 软件 DISPATCH_LEVEL 线程调度和延迟过程调用的执行 9、 APC_LEVEL 异步过程调用执行 10、 PASSIVE_LEVEL 下常线程执行等级阅读全文
posted @ 2008-10-27 09:18 吴碧宇 阅读(481) | 评论 (0) 编辑
摘要: 最近对于批处理技术的探讨比较热,也有不少好的批处理程序发布,但是如果没有一定的相关知识恐怕不 容易看懂和理解这些批处理文件,也就更谈不上自己动手编写了,古语云:“授人以鱼,不如授人以渔。” 因为网上好像并没有一个比较完整的教材,所以抽一点时间写了这片<<简明批处理教程>>给新手朋友们阅读全文
posted @ 2008-10-27 09:14 吴碧宇 阅读(86) | 评论 (0) 编辑
摘要: GetCurrentProcessID 得到当前进程的ID OpenProcessToken得到进程的令牌句柄 LookupPrivilegeValue 查询进程的权限 AdjustTokenPrivileges 调整令牌权限 阅读全文
posted @ 2008-09-01 14:44 吴碧宇 阅读(534) | 评论 (0) 编辑
摘要: 自己看核心编程,对消息分流器不太理解,这篇写的不错,所以转载。 文章作者:欣欣 原文链接:http://blog.csdn.net/hopkins9961629/archive/2006/01/25/588184.aspx 阅读全文
posted @ 2008-08-22 01:49 吴碧宇 阅读(174) | 评论 (0) 编辑
摘要: 目 录 1 NDIS中间层驱动程序 2 1.1 NDIS中间层驱动程序(NDIS Intermediate Drivers)概述 2 1.2 NDIS中间层驱动程序的用途 4 1.3 NDIS中间层驱动程序的开发环境 4 2 NDIS中间层驱动程序的开发 4 2.1 可分页和可丢弃代码 4 2.2 共享资源的访问同步 5 2.3 中间层驱动程序的DriverEntry函数 5 2.3.1 注册NDIS中间层驱动程序 6 2.3.1.1 注册中间层驱动程序的Miniport 6 2.3.1.2 注册中间层驱动程序的协议 8 2.4 中间层驱动程序的动态绑定 11 2.4.1 打开中间层驱动程序下层的适配器 12 2.4.2 微端口(Miniport)初始化 12 2.4.3 中间层驱动程序查询和设置操作 13 2.4.3.1 发布设置和查询请求 14 2.4.3.2 响应设置和查询请求 15 2.4.4 作为面向连接客户程序注册中间层驱动程序 15 2.5 中间层驱动程序数据包管理 17 2.5.1.1 重用数据包 18阅读全文
posted @ 2008-08-01 03:06 吴碧宇 阅读(1639) | 评论 (0) 编辑
摘要: (1)首先在函数里定义一具VA_LIST型的变量,这个变量是指向参数的指针 (2)然后用VA_START宏初始化变量刚定义的VA_LIST变量,这个宏的第二个参数是第一个可变参数的前一个参数,是一个固定的参数。 (3)然后用VA_ARG返回可变的参数,VA_ARG的第二个参数是你要返回的参数的类型。 (4)最后用VA_END宏结束可变参数的获取。然后你就可以在函数里使用第二个参数了。如果函数有多个可变参数的,依次调用VA_ARG获取各个参数。 阅读全文
posted @ 2008-07-30 23:02 吴碧宇 阅读(2717) | 评论 (1) 编辑
摘要: http://www.cppreference.com/operator_precedence.html阅读全文
posted @ 2008-07-30 10:47 吴碧宇 阅读(176) | 评论 (0) 编辑
摘要: 什么时指针:指针是存入指定数据类型地址的一种变量,void * 指针类型的指针可以存放任何数据类型的指针。 定义和声名指针变量:由数据类型后跟星号,再跟随指针变量名组成。如 int *ip;指针在使用前,要进行初始化。 如int count =10;int *count = &count;如果忘记了给指针赋值是非常危险的。因为指针在没有初始化时存放的是一个随机的地址,此时如果给指针赋值(*count = 20;)是把20赋到了内存中的随机位置,因此很可能破坏系统中的另一变量甚至修改栈中的函数返回地址。 阅读全文
posted @ 2008-07-29 01:22 吴碧宇 阅读(105) | 评论 (0) 编辑
摘要: 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放 4、文字常量区 —常量字符串就是放在这里的。 程序结束后由系统释放 5、程序代码区—存放函数体的二进制代码。 阅读全文
posted @ 2008-07-28 22:20 吴碧宇 阅读(106) | 评论 (0) 编辑
摘要: 在这之前,我曾经开发过一个项目,其中一块需要网络支持,当时还考虑到了代码的可移植性,只要使用select,connect,accept,listen,send还有recv,再加上几个#ifdef的封装以用来处理Winsock和BSD套接字[socket]中间的不兼容性,一个网络子系统只用了几个小时很少的代码就写出来了,至今还让我很回味。那以后很长时间也就没再碰了。

  前些日子,我们策划做一个网络游戏,我主动承担下网络这一块,想想这还不是小case,心里偷着乐啊。网络游戏好啊,网络游戏为成百上千的玩家提供了乐趣和令人着秘的游戏体验,他们在线上互相战斗或是加入队伍去战胜共同的敌人。我信心满满的准备开写我的网络,于是乎,发现过去的阻塞同步模式模式根本不能拿到一个巨量多玩家[MMP]的架构中去,直接被否定掉了。于是乎,就有了IOCP,如果能过很轻易而举的搞掂IOCP,也就不会有这篇教程了。下面请诸位跟随我进入正题。
阅读全文
posted @ 2008-06-20 00:38 吴碧宇 阅读(253) | 评论 (0) 编辑
摘要: assert
函数名: assert
功 能: 测试一个条件并可能使程序终止
用 法: void assert(int test);阅读全文
posted @ 2008-02-26 12:38 吴碧宇 阅读(138) | 评论 (0) 编辑