- 博客(30)
- 资源 (2)
- 问答 (2)
- 收藏
- 关注
转载 给C++初学者的50个忠告
1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成
2016-03-17 09:42:02 2152
转载 网络编程学习笔记一:Socket编程
“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型
2016-03-28 16:31:34 267
转载 WinInet、winhttp、winsock的含义和区别
wininet、winhttp、winsock含义WinInet(“Windows Internet”)是一个网络编程接口,帮助程序员使用三个常见的Internet协议:HTTP、FTP、Gopher(信息查找系统,www出现后已渐渐不在使用),wininet.dll。借助 WinInet 接口,可不必去了解 Winsock、TCP/IP 和特定 Internet 协议的细节就可以
2016-03-28 15:41:25 3866
转载 WinInet, WinHttp, Winsock, ws2_32的区别和联系
在Windows平台进行网络程序开发, 可以使用不同的库, 但是最常用的还是微软自己开发的库。具体说来,有:(1)Winsock,工作于网络层和传输层的开发库,对于编写TCP,UDP,以及原始IP通信程序非常合适。函数原形也基本符合Unix socket标准。Windows平台上的大多数程序,如QQ,讯雷等都基于其开发。(2)ws2_32,是Winsock的升级版本,在兼容的基础上增加了不
2016-03-28 15:38:24 734
原创 C++中struct、class 向前声明(前置声明)
声明:我把class定义的类型称为类,struct定义的类型称为结构体。C++中,如果要在一个类A的声明中用到另一个类B的指针或引用,需要包含类B的头文件,如果不想包含,可以使用向前声明。但是,如果是结构体(struct定义的),好像不支持向前声明,C++中类和结构体差别不大,只是默认权限不同(class默认为私有,struct默认为公有),所以如果想使用向前声明,请使用class定义类型
2016-03-28 14:26:20 19569 2
转载 struct和typedef struct
分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明) 这里的Stu实际上就是
2016-03-28 13:21:02 303
原创 NULL、0与nullptr
C的NULL在C语言中,我们使用NULL表示空指针,也就是我们可以写如下代码: int *i = NULL;foo_t *f = NULL; 实际上在C语言中,NULL通常被定义为如下: #define NULL ((void *)0) 也就是说NULL实际上是一个void *的指针,然后吧void *指针赋值给int
2016-03-24 13:31:16 357
原创 Windows 动态函数链接库 简介
概述动态函数链接库,通常称为dll,是Dynamic linked library的简称。dll中包含的是程序的二进制可执行代码和程序资源。dll文件可在多个引用程序间共享,具有便于项目管理,节省内存,代码保密等功能。dll是Windows编程的基础。原理按加载方式划分,分为两种,加载时链接(隐式链接)和运行时链接(显示链接)1.加载时链接,加载时链接是在应用程序启动时就将Dll加
2016-03-22 15:49:43 492
原创 TinyXml Print 函数 Bug
最近做一个项目,用到了TinyXml操作XML,有一个地方需要用print函数把XML文本打印出来,代码如下:m_pDbCfg->trees[m_pDbCfg->treeCount-1].cbuffer = (char*)malloc( MAX_BUFFERSIZE );int idx = 0;int isize = MAX_BUFFERSIZE;//由于无法预计最大长度,看了一下Prin
2016-03-22 13:33:15 896
转载 TinyXml快速入门(三)
作者:朱金灿来源:http://blog.csdn.net/clever101 在《TinyXml 快速入门(二) 》介绍使用tinyxml库获取xml文件声明,查询指定节点、删除指定节点的做法。在本文中继续介绍修改指定节点和增加节点的做法。 修改节点其实和查询指定节点的值有点类似,也分为两个函数,一个实现修改文本。另一个负责修改属性。
2016-03-21 16:35:07 413
转载 TinyXml快速入门(二)
作者:朱金灿来源:http://blog.csdn.net/clever101 在《TinyXml快速入门(一) 》中我介绍了使用TinyXml库如何创建和打印xml文件,下面我介绍使用tinyxml库对xml文件进行一系列的操作,包括获取xml文件声明,查询指定节点、删除指定节点、修改指定节点和增加节点的用法。在《TinyXml快速入门(一)》中我们知道xml文件
2016-03-21 16:34:13 502
原创 TinyXML 指南
注: 本文是 TinyXML 2.5.3 版本 Document 中的《TinyXML Tutorial》的翻译文档,由本人 Dennis.Gao 翻译,版权归原作者所有,转载本文档请注明出处。原文出自 TinyXML 源码包doc目录。在线文档:http://www.grinninglizard.com/tinyxmldocs/tutorial0.htmlAuthor : Dennis.Ga
2016-03-21 16:04:23 401
转载 TinyXml快速入门(一)
作者:朱金灿来源:http://blog.csdn.net/clever101 对于xml文件,目前我的工作只是集中在配置文件和作为简单的信息文件来用,因此我不太喜欢使用msxml这种重量级的xml解析器,特别是使用msxml解析xml涉及到复杂的com类型转换,更是令人感觉繁琐。因此对于简单的xml文件的解析,我更愿意使用开源的TinyXml。
2016-03-21 15:05:51 412
转载 sizeof浅析(一)——求结构体大小
运算符sizeof可以计算出给定类型的大小,对于32位系统来说,sizeof(char) = 1; sizeof(int) = 4。基本数据类型的大小很好计算,我们来看一下如何计算构造数据类型的大小。 C语言中的构造数据类型有三种:数组、结构体和共用体。 数组是相同类型的元素的集合,只要会计算单个元素的大小,整个数组所占空间等于基础元素大小乘上元素
2016-03-18 14:12:44 371
原创 浅谈extern “C”
先来一个概括,如果要在C++中使用C函数,则需要用extern "C" 来声明。为什么呢?因为C++与C编译器有细微的差别,不用用这个符号,调用会出现错误。详情解析:作为一种面向对象的语言,C++支持函数重载,而过程式语言C则不支持。函数被C++编译后在符号库中的名字与C语言的不同。例如,假设某个函数的原型为:void foo( int x, int y );该
2016-03-18 10:50:52 346
转载 关于堆栈、内存分配
在计算机领域,堆栈是一个不容忽视的概念,但是很多人甚至是计算机专业的人也没有明确堆栈其实是两种数据结构。 要点: 堆:顺序随意 栈:先进后出 c/C++ 堆和栈的区别 對了解Java會有幫助的一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,
2016-03-17 19:38:12 402
转载 VC检测Office版本
现在做的一个软件,里边用到了ActiveX控件,内嵌了Word,在安装Word的电脑运行是没问题的,但是在没有Word环境的电脑上就出问题,所以需要检测一下当前机器是否安装了Office,然后做出友好提示。在网上找了一个类(类的声明实现都在.h文件里,用的时候包含一下就行了),挺好用的,原理是搜索注册表,查看是否存在Office注册表文件,如果已安装,便获得当前Office版本的详细信息,如果没安
2016-03-17 17:05:29 1596 2
转载 当前不会命中断点,源代码与原始版本不同,解决办法
提示:当前不会命中断点。源代码与原始版本不同.为什么会出现呢?原因当前大家都清楚,就是因为编译器生成的符号文件与源代码不同.那我的代码明明已经改变并存档,并且编译了,为什么还是不同呢?1.也许是没有被真正的重新生成吧, 这好办,清理解决方案,清理工程,为了更彻底,再关闭解决方案,把debug删掉,ncb文件删掉,再打开重新生成.有时候这样问题就解决了,但
2016-03-17 17:01:18 10060
转载 指针函数与函数指针
一、辨别指针函数与函数指针最简单的方式就是看函数名前面的指针*号有没有被括号包含,如果被包含就是函数指针 ,反之则是指针函数。1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针 类型标识符 *函数名(参数表) int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个地址值
2016-03-17 10:54:29 281
转载 C++经典面试题
1,关于动态申请内存答:内存分配方式三种:(1)从静态存储区域分配:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。全局变量,static变量。(2)在栈上创建:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
2016-03-16 22:51:31 301
转载 C\C++面试题
1. C中static有什么作用 (1)隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性,故使用static在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。 (2)static的第二个作用是保持变量内容的持久。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和
2016-03-16 22:48:31 5831
原创 如何成为一个C++高级程序员
C++这门语言从诞生到今天已经经历了将近30个年头。不可否认,它的学习难度都比其它语言较高。而它的学习难度,主要来自于它的复杂性。现在C++的使用范围比以前已经少了很多,java、C#、python等语言在很多方面已经可以代替C++。但是也有很多地方是其他语言完全无法替代的,主要集中在需要运行效率比较高的行业,比如游戏、高效的服务器。 现在学习java、C#等语言的人数远远高于C++,主
2016-03-16 20:18:26 592
转载 VS2010打包应用程序
1、 在vs2010 选择“新建项目”→“ 其他项目类型”→“ Visual Studio Installer→“安装项目”:命名为:Setup1 。这是在VS2010中将有三个文件夹,1.“应用程序文件夹”表示要安装的应用程序需要添加的文件;2.“用户的‘程序’菜单”表示:应用程序安装完,用户的“开始菜单”中的显示的内容,一般在这个文件夹中,需要再创建一个
2016-03-16 17:18:47 415
转载 visual studio运行时库MT、MTd、MD、MDd的研究
在开发window程序是经常会遇到编译好好的程序拿到另一台机器上面无法运行的情况,这一般是由于另一台机器上面没有安装响应的运行时库导致的,那么这个与编译选项MT、MTd、MD、MDd有什么关系呢?这是msdn上面的解释:MT:mutithread,多线程库,编译器会从运行时库里面选择多线程静态连接库来解释程序中的代码,即连接LIBCMT.lib库MTd:mutithread+deb
2016-03-16 17:17:24 483
转载 励志好文
有人工作,有人上学,大家千万不要错过这篇文章,能看到这篇文章也是一种幸运,真的受益匪浅,对我有很大启迪,这篇文章将会改变你我的一生,真的太好了,希望与有缘人分享,也希望对有缘人有所帮助!看完之后有种“相见恨晚”的感觉,特别激动,希望大家好好的珍藏这篇文章,相信多年以后,再来看这篇文章,一定有不同的感觉。 正如“打工皇帝”唐骏说:“我觉得有两种人不要
2016-03-16 15:43:58 861
转载 公司技术管理角度看C++游戏程序员发展
公司技术管理角度看C++游戏程序员发展H3D这是我多年来招聘培训游戏程序员的一点想法。一直想汇总一下。主要目的是为了更好的对公司新进C++程序员进行培训,并且建立起游戏程序员培训,发展,成才,成为核心骨干,管理层,期权收益人等一整套体系。因为对于MMO游戏制作来讲,解决好C++技术队伍,是保证合格软件的基础之一。 我在的H3D Studio核心技术人员和游戏制作管
2016-03-16 13:31:22 381
转载 分享8年开发经验,浅谈程序员职业规划
序:在中国有很多人都认为IT行业是吃青春饭的,如果过了30岁就很难有机会再发展下去!其实现实并不是这样子的,在下从事.NET及JAVA方面的开发的也有8年的时间了,在这里在下想凭借自己的亲身经历,与大家一起探讨一下。明确入行的目的很多人干IT这一行都冲着“收入高”这一点的,因为只要学会一点HTML、DIV+CSS,要做一个页面开发人员并不是一件难事,而且做一个页面开发人员更
2016-03-16 10:28:35 621
转载 程序员技术练级攻略
建议: 不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用。 回顾一下历史,看看历史上时间线上技术的发展,你才能明白明天会是什么样。 一定要动手,例子不管多么简单,建议至少自己手敲一遍看看是否理解了里头的细枝末节。 一定要学会思考,思考为什么要这样,而不是那样。还要举一反三地思考。注:你也许会很奇怪为什
2016-03-16 10:27:39 288
原创 Stack overflow
上周五遇到的问题,中间做其他项目,一直到今天才去继续解决它。出问题的代码段void CXTableAppMakerDlg::OnCbnSelchangeCmbMaintables(){// TODO: 在此添加控件通知处理程序代码int nMTableId = m_ListMTable.GetCurSel();/*int hh =0;CMakeTableDlg* p
2016-03-10 16:15:42 712
在编写一个从谷歌下载影像图的程序,下载过程中,网速时快时慢,求高手指点
2015-12-30
MFC SDI禁掉最大化按钮后程序把桌面任务里覆盖了,求大神解答
2015-12-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人