
VC/C++基础
文章平均质量分 80
c0ffee1982
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
在VC6.0下设置Unicode编译环境
VC++ 6.0支持Unicode编程,但默认的是ANSI,所以开发人员只需要稍微改变一下编写代码的习惯便可以轻松编写支持UNICODE的应用程序。 使用VC++ 6.0进行Unicode编程主要做以下几项工作:1、为工程添加UNICODE和_UNICODE预处理选项。 具体步骤:打开[工程]->[设置…]对话框,如图1所示,在C/C++标签对话框的“预处理程序定义”中去除_MBCS原创 2007-11-19 09:55:00 · 949 阅读 · 0 评论 -
COM 中的数据类型
数据类型作者:杨老师一、前言 上回书介绍了GUID、CLSID、IID和接口的概念。本回的重点是介绍 COM 中的数据类型。咋还不介绍组件程序的设计步骤呀?咳......别着急,别着急!孔子曰:“饭要一口一口地吃”;老子语:“心急吃不了热豆腐”,孙子云:“走一步看一步吧” ...... 先掌握必要的知识,将来写起程序来才会得心应手也:-) 走入正题之前,请大家牢牢记住一条原则:COM 组件原创 2007-11-19 13:30:00 · 684 阅读 · 0 评论 -
三十分钟掌握STL
三十分钟掌握STL 这是本小人书。原名是原创 2007-11-19 13:55:00 · 622 阅读 · 0 评论 -
详细解说STL string
详细解说STL string 详细解说STL string 0 前言: string 的角色 1 string 使用 1.1 充分使用string 操作符 1.2 眼花缭乱的string find 函数 1.3 stri原创 2007-11-19 13:56:00 · 522 阅读 · 0 评论 -
进程间的通讯方式
1. 共享内存#include #include #include int main (){ int segment_id; char* shared_memory; struct shmid_ds shmbuffer; int segment_size; const int shared_segment_size = 0x6400; /* Allocate a shared memo原创 2007-11-19 14:18:00 · 1070 阅读 · 0 评论 -
浅谈C中的malloc和free
原帖及讨论:http://www.bc-cn.net/bbs/dispbbs.asp?BoardID=5&ID=82212 在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用——就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识原创 2007-11-19 14:18:00 · 596 阅读 · 0 评论 -
C++编译器如何实现异常处理
与传统语言相比,C++的一项革命性创新就是它支持异常处理。传统的错误处理方式经常满足不了要求,而异常处理则是一个极好的替代解决方案。它将正常代码和错误处理代码清晰的划分开来,程序变得非常干净并且容易维护。本文讨论了编译器如何实现异常处理。我将假定你已经熟悉异常处理的语法和机制。本文还提供了一个用于VC++的异常处理库,要用库中的处理程序替换掉VC++提供的那个,你只需要调用下面这个函数:原创 2007-11-19 14:23:00 · 1005 阅读 · 0 评论 -
理解c语言中的复杂声明-向右看,向左看
C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过 ,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声 明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。右左法则的英文原文是这样说的: The right-left rule: Start reading原创 2007-11-19 14:25:00 · 801 阅读 · 0 评论 -
堆内存和栈内存详解(转载)
堆:顺序随意栈:先进后出堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静原创 2007-11-19 14:25:00 · 784 阅读 · 0 评论 -
字节对齐
一、快速理解 1. 什么是字节对齐? 在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在结构中,编译器为结构的每个成员按其自然边界(alignment)分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。 为了使CPU能够对原创 2007-11-19 14:26:00 · 640 阅读 · 0 评论 -
vs.net 2005, 没有找到MSVCR80D.dll的完美解决方案
问题描述:大部分的vs.net 2005的用户在新建“win32项目-windows应用程序”的时候,新建的工程都通不过去,出现如下提示:Solution to “MSVCR80D.dll not found” by hua.“没有找到MSVCR80D.dll,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题。”的完美解决方案感觉偶做的还不错问题所在:由于vs.net 2005 采用了一原创 2007-11-19 09:50:00 · 599 阅读 · 0 评论 -
小议static
1、什么是static? static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。 2、为什么要引入static? 函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容易想到的方法是定原创 2007-11-19 11:54:00 · 438 阅读 · 0 评论 -
srand() rand()函数
1,先看一个例子#include #include #include using namespace std; int main( void ) { int i; /* Seed the random-number generator with current time so that * the numbers will be different every time原创 2007-11-19 12:00:00 · 937 阅读 · 0 评论 -
typedef 定义函数指针
http://blog.sina.com.cn/u/5423100e010007jztypedef 定义函数指针 2007-01-24 09:50:34 大中小 关于C++中函数指针的使用(包含对typedef用法的讨论)(一)简单的函数指针的应用。//形式1:返回类型(*函数名)(参数表)char (*pFun)(int);char glFun(int a){ return;}void ma原创 2007-11-19 13:57:00 · 2694 阅读 · 0 评论 -
char unicode
字符编码问题:WCHAH(即UNICODE)和char之间怎么样转化呢? 原讨论链接:http://community.youkuaiyun.com/expert/topicview1.asp?id=724830 所属论坛:基础类 审核组:VC/MFC 提问者:duankuanjun 解决者: 感谢:acptvc 关键字:VC/MFC 函数 基础类 转换 字符 串 int 参看 编码 原型 缓原创 2007-11-19 13:29:00 · 858 阅读 · 0 评论 -
CFile
VC6中CFile读文件后不在末尾加/0也能准确显示,可能是自动加了/0.但VC2005中用CFile读文件后,必须要自己在末尾加/0,否则读完后显示的就不准确。原创 2007-11-19 13:27:00 · 478 阅读 · 0 评论 -
C++学习要点
1. 传指针时,我们可以通过指针来修改它在外部所指向的内容。但如果要修改外部指针所指向的对象是不可能的。例如传递外部指针到函数内来分配空间,必须传递指针的指针或指针的引用。 2. char carry[10] = {0}; 编译器会将其后所有的东西都置0; 3. 函数返回值为const时,返回的东西付给一个类型相同的标示后其不能为左值; 4. const int *i; int con原创 2007-11-19 10:30:00 · 437 阅读 · 0 评论 -
C++堆、栈、自由存储区、全局/静态存储区和常量存储区
C++堆、栈、自由存储区、全局/静态存储区和常量存储区原创 2007-11-19 10:33:00 · 488 阅读 · 0 评论 -
char[] 与 char* 的区别
举个例子:char buf1[128];char* buf2 = new char[128];buf2 = buf1; //正常编译通过buf1 = buf2; //编译错误,不能char[] convert to char*原因buf1为指针常量,指向的地址不能改变,buf2为指针变量,指向的地址可以改变可以通过字符拷贝函数实现内容复制:strcpy(buf1,buf原创 2007-11-19 10:37:00 · 770 阅读 · 0 评论 -
VC中char *name 与 char name[]的区别
在学习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",前者改变其内容程序是会崩溃的,而后者完全正确。程序演示:测试环境Devc++代码#include stdio.h>#include string.h>main()...{ char *c1 = "abc"; char c2[] = "abc"; char *c3 = (原创 2007-11-19 11:48:00 · 2298 阅读 · 0 评论 -
C++的static关键字
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1#include void原创 2007-11-19 11:55:00 · 461 阅读 · 0 评论 -
BSTR _variant_t
Linux内核情景分析学习笔记——内存映射情景 该情景为内存管理的第一个情景。 该情景是围绕“需求与供应”展开的:“需求”是指对虚存空间的需求,一个虚拟地址有相应的虚存空间存在,并不保证该地址所在的页面已经映射到某一个物理页面中。当一个未经映射的页面受到访问时,就会产生缺页异常或中断,从这个意义上来说,mm_struct和vm_area_struct说明了对页面的需求;原创 2007-11-19 11:58:00 · 3033 阅读 · 0 评论 -
浮点数比较注意
void main() { double sum=0; for(double x=0.0;x!=5.5;x+=0.1)sum+=x; } 上述程序用来计算加和0.1+0.2+...+5.4.这段程序在计算机上会陷入无限循环.因为计算机的精度有限,x永远不会达到5.5. 实际上,1/3和0.1这样的数在计算机上不可能精确的表示. 将这个for循环改为 for(double x=0.0;x结论:相等判原创 2007-11-19 12:01:00 · 705 阅读 · 0 评论 -
神奇,在地址栏里输入
javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position=abs原创 2007-11-19 12:12:00 · 560 阅读 · 0 评论 -
typedef
typedef C/C++语言中的typedef相信大家已经不陌生,本文对C/C++语言关键字typedef的各种用法作一个介绍。typedef,顾名思义,为“类型定义”,可以解释为:将一种数据类型定义为某一个标识符,在程序中使用该标识符来实现相应数据类型变量的定义。例如: typedef unsigned int UINT;int main (int argc, cha原创 2007-11-19 12:15:00 · 628 阅读 · 0 评论 -
_WIN32_WINNT
Using the SDK HeadersThis version of the Microsoft® Platform SDK targets applications for Microsoft Windows® 95, Microsoft Windows NT® 4.0, Microsoft Windows® 98, Microsoft Windows Millennium Edit原创 2007-11-19 09:52:00 · 764 阅读 · 0 评论 -
sprintf,你知道多少?
选自《优快云 社区电子杂志——C/C++杂志》http://emag.youkuaiyun.com/ 2005 年1 月 总第1 期 - 93 -本文作者:steedhorse(晨星)printf 可能是许多程序员在开始学习C 语言时接触到的第二个函数(我猜第一个是main),说起来,自然是老朋友了,可是,你对这个老朋友了解多吗?你对它的那个孪生兄弟sprintf 了解多吗?在将各种类型的数据构造成字符串时原创 2007-11-19 12:59:00 · 673 阅读 · 0 评论 -
位运算
12.1 位运算符C语言提供了六种位运算符:& 按位与 | 按位或 ^ 按位异或 ~ 取反 >> 右移 12.1.1按位与运算按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1,否则为0。参与运算的数以补码方式出现。 例如: 9&5可写算式如下: 00001001 (9的二进制补码) &00000101 (5的原创 2007-11-19 13:00:00 · 1351 阅读 · 0 评论 -
多线程
WaitForSingleObject()如果是在同一个线程里面,计数器会加1,如果互斥对象本身为开启状态,那就会变成2。要释放两次才能变成关闭。原创 2007-11-19 13:15:00 · 524 阅读 · 0 评论 -
彻底明了WIN32底层工作的工具MASM32
我们用什么工具才能知道windows内核是如何工作,消息是如何处理的呢?windows的汇编工具MASM32可以让我们非常容易彻底明了WIN32底层工作窗口程序的核心工作就是3大点,A资源文件的编辑+B窗口的处理主程序+C消息处理程序 MASM32官方下载站点: http://www.masm32.com在没有使用C++和MFC开发window程序以前,都是用C语言与原创 2007-11-19 14:28:00 · 1525 阅读 · 1 评论