Welcome 微信登录

首页 / 软件开发 / C++

高质量C++/C编程指南-第7章-内存管理(2)

高质量C++/C编程指南-第7章-内存管理(2)

高质量C++/C编程指南-第7章-内存管理(2)2007-05-06林锐7.3.1 修改内容示例7-3-1中,字符数组a的容量是6个字符,其内容为hello。a的内容可以改变,如a[0]= ‘X’。指针p指向常量字符串“world”(位于静态存储区,内容为world),常量字符串的内容是不可以被修改的。从语法上看,编译器并不觉得语句p[0]= ‘X’有什么不妥,但是该语句企图修改常量字...
在VC中添加资源文件,使程序在Vista上用管理员权限运行

在VC中添加资源文件,使程序在Vista上用管理员权限运行

在VC中添加资源文件,使程序在Vista上用管理员权限运行2010-01-24 Vista之家 就像大家使用Vista优化大师或者Windows磁盘整理大师那样,如果开启了UAC用户账户控制系统,那么图标上面都会有个盾牌小图标,而且在运行的时候,也会提示需要管理员权限。这些,是怎么做到的呢?对于VC程序员来说,这个过程其实并不复杂,大家看下下面的代码:///////// 本行以下为代码,不含本行<?xml version=”1.0&Pri...
高质量C++/C编程指南-第7章-内存管理(3)

高质量C++/C编程指南-第7章-内存管理(3)

高质量C++/C编程指南-第7章-内存管理(3)2007-05-06林锐7.3.3 计算内存容量用运算符sizeof可以计算出数组的容量(字节数)。示例7-3-3(a)中,sizeof(a)的值是12(注意别忘了’’)。指针p指向a,但是sizeof(p)的值却是4。这是因为sizeof(p)得到的是一个指针变量的字节数,相当于sizeof(char*),而不是p所指的内存容量。C++/C语言没有办法知道指针所指的内存容量,除非在申...
如何在改变鼠标光标时不闪烁

如何在改变鼠标光标时不闪烁

如何在改变鼠标光标时不闪烁2010-01-24微软知识库有一篇文章Q131991描述了三种方法来改变基于MFC应用的鼠标光标。其中一种方法是重载CWnd::PreCreateWindow()函数注册自己的要改变鼠标指针的窗口类。这个方法对于要始终使用一个鼠标光标的应用程序很适合。如果在应用程序中要动态改变鼠标光标,微软知识库的这篇文章建议重载CWnd::OnSetCursor()来实现。但是这种方法有一个缺点,就是当设置鼠标光标及还原时都会出现令人讨厌的光...
如何在应用程序忙碌时探测用户的按健

如何在应用程序忙碌时探测用户的按健

如何在应用程序忙碌时探测用户的按健2010-01-24这个问题在论坛中的出现频率很高。在解决这个问题时,首先要明确Windows处理用户输入的方法完全不同于Dos操作系统。当用户按键后,Dos应用向操作系统提出请求,而在Windows中,当用户事件发生时,是由Windows请求调用相应的代码,代码实现自己必须的处理,最后将控制返回到操作系统。当你从Dos操作系统编程转向Windows的时候,你会很不习惯Windows的面向事件与消息的处理模式,但是面向对象...
Ado实现C++对象的存取

Ado实现C++对象的存取

Ado实现C++对象的存取2010-02-19江上飞鸟其实我最讨厌写东西了,最近忙死了,呵呵,前一段时间在做一个图形程序时,需要把C++对象保存到数据库里,刚开始真让我头疼啊,琢磨了一个下午,终于给做出来了,废话不说了,还是把自己的一些体会与各位同任一起分享!!!!一、新建一个继承于 CObject 的子类 CLine;头文件:Line.h class CLine : public CObject?{private : LOGPEN m_logPen; ...
高质量C++/C编程指南-第7章-内存管理(5)

高质量C++/C编程指南-第7章-内存管理(5)

高质量C++/C编程指南-第7章-内存管理(5)2007-05-06林锐7.9 内存耗尽怎么办?如果在申请动态内存时找不到足够大的内存块,malloc和new将返回NULL指针,宣告内存申请失败。通常有三种方式处理“内存耗尽”问题。(1)判断指针是否为NULL,如果是则马上用return语句终止本函数。例如:void Func(void){A *a = new A;if(a == NULL){return;}…}(2)...
ADO开发中如何得到表格字段名

ADO开发中如何得到表格字段名

ADO开发中如何得到表格字段名2010-02-19杨桂文在数据库的开发过程中,常用的操作不仅有添加、修改、删除记录,还有对字段的操作,而获得字段名就是其中的一种。获得字段名之前必须先与数据库建立连接,再打开相应的表,再得到表的字段集,下面以一程序为例,说明如何得到字段名。新建一 VC MFCAppWizard(exe)工程,类型为Dialog based;添加一按钮名为“显示字段”,添加一 Listbox控件;创建 Access数据...
高质量C++/C编程指南-第7章-内存管理(7)

高质量C++/C编程指南-第7章-内存管理(7)

高质量C++/C编程指南-第7章-内存管理(7)2007-05-06林锐7.11 new/delete 的使用要点运算符new使用起来要比函数malloc简单得多,例如:int *p1 = (int *)malloc(sizeof(int) * length);int *p2 = new int[length];这是因为new内置了sizeof、类型转换和类型安全检查功能。对于非内部数据类型的对象而言,new在创建动态对象的同时完成了初始化工作。如果对象有...
用MFC+ADO把jpg图象文件放入ACCESS库中

用MFC+ADO把jpg图象文件放入ACCESS库中

用MFC+ADO把jpg图象文件放入ACCESS库中2010-02-19刘欣网上好象这个例子还没有样,如果你用VC做一个人事部管理系统,不可能没有人员照片吧!能找到的例子中都是用BMP,不敢用!这个例子用到了VC6.0和access2002(officeXP),涉及到ADO的用法,文件对话框的使用,一个CPicture类和一个buffer缓冲区。一、我的ADO用法整理1.stdafx.h头文件中加入:#import "c:program file...
高质量C++/C编程指南-第8章-C++函数的高级特性(1)

高质量C++/C编程指南-第8章-C++函数的高级特性(1)

高质量C++/C编程指南-第8章-C++函数的高级特性(1)2007-05-06林锐对比于C语言的函数,C++增加了重载(overloaded)、内联(inline)、const和virtual四种新机制。其中重载和内联机制既可用于全局函数也可用于类的成员函数,const与virtual机制仅用于类的成员函数。 重载和内联肯定有其好处才会被C++语言采纳,但是不可以当成免费的午餐而滥用。本章将探究重载和内联的优点与局限性,说明什么情况下应该采用、不该采用以...
探测Windows主机的NetBIOS信息

探测Windows主机的NetBIOS信息

探测Windows主机的NetBIOS信息2010-02-19TOo2y大家一提到Windows2000/XP系统的安全性,很快就会想到NULL Session(空会话)。这可以算是微软安置的一个后门,很多简单而容易的攻击都是基于空会话而实现的。在此,我们不讨论如何攻陷一台Windows2000/XP系统,而是要谈谈在建立空会话之后,我们可以得到远程主机的哪些NetBIOS信息。(由于本文是针对Windows2000/XP系统,所以使用了UNICODE编码...
探测Windows2K/XP/2003本机系统信息

探测Windows2K/XP/2003本机系统信息

探测Windows2K/XP/2003本机系统信息2010-02-19FZ5FZNative API乃Windows用户模式中为上层Win32 API提供接口的本机系统服务。平常我们总是调用MS为我们提供的公用的Win32 API函数来实现来实现我们系统的功能。(PS:前不久,偶写了一个Windows任务管理器,支持对桌面,进程/线程,系统性能,磁盘,环境变量,事件日志,网络,设备驱动,Win32服务,共享,用户,系统及关机等信息的探测和控制,完全基于Wi...
高质量C++/C编程指南-第8章-C++函数的高级特性(2)

高质量C++/C编程指南-第8章-C++函数的高级特性(2)

高质量C++/C编程指南-第8章-C++函数的高级特性(2)2007-05-06林锐8.1.3 当心隐式类型转换导致重载函数产生二义性示例8-1-3中,第一个output函数的参数是int类型,第二个output函数的参数是float类型。由于数字本身没有类型,将数字当作参数时将自动进行类型转换(称为隐式类型转换)。语句output(0.5)将产生编译错误,因为编译器不知道该将0.5转换成int还是float类型的参数。隐式类型转换在很多地方可以简化程序的...
一个TCP和UPD聊天、传收文件程序

一个TCP和UPD聊天、传收文件程序

一个TCP和UPD聊天、传收文件程序2010-02-19王雪松摘要:本文通过例子,介绍了如何在局域网中进行聊天、互发文件以及抓取对方屏幕保存为文件。程序还包括了取得本机和对方的IP、计算机名称。滚动ListBox控件等功能本人初次发表文章只是想起抛砖引玉之功效,其中错误在所难免,请各位看客别拿瓜皮丢我,谢谢。运行界面如下:一、 启动终止监听线程(只介绍TCP)由于此程序可以即时切换状态,因此需要结束仍处于接受状态的线程。//TCP监听线程UINT _Lis...
高质量C++/C编程指南-第8章-C++函数的高级特性(3)

高质量C++/C编程指南-第8章-C++函数的高级特性(3)

高质量C++/C编程指南-第8章-C++函数的高级特性(3)2007-05-06林锐8.2.2 令人迷惑的隐藏规则本来仅仅区别重载与覆盖并不算困难,但是C++的隐藏规则使问题复杂性陡然增加。这里“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。(2)如果派生类的函数与基类的函数同名,并且参数也相...
使用ADO控件打造另类的聊天室

使用ADO控件打造另类的聊天室

使用ADO控件打造另类的聊天室2010-02-19冰龙这个是我开始接触编程时的想法,想通过仅用数据库,不采用sock来实现一个简单的在局域网内的聊天室,我想这个想法很多人都有过。这个程序本身没什么价值,只是一来把自己当初的设计与大家分享,二来是有鉴于网上对ADO控件的使用这方面的介绍不是很多,自己算是抛砖引玉吧。言归正传,首先用access建立一个数据库chat,接着建两张表格:content(name(文本),time(时间),content(文本))o...
<< 11 12 13 14 15 16 17 18 19 20 >>