![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 55
Nina_Nina_Nina
这个作者很懒,什么都没留下…
展开
-
C++解析JSON的好文章
转载:http://zcg9033586.blog.163.com/blog/static/175217310201112852413788/使用c++处理json数据交换格式一、摘要 json的全称为:JavaScript Object Notation转载 2011-09-23 15:49:14 · 75 阅读 · 0 评论 -
new与malloc的区别
1、new/delete是c++的运算符,而malloc/free是c的标准函数库;2、new 返回的是指定类型的指针,而malloc返回的是void *指针,需要强制转化为指定类型;3、new在分配内存大小的时候进行初始化,而malloc只管分配大小,不管初始化;new可以看成是 malloc+初始化;malloc函数的实质体现在,它有一个将可用的内存块连接为一个长长的列原创 2012-03-26 17:16:34 · 579 阅读 · 0 评论 -
获取进程的当前目录,然后调用其他程序的方法(包含linux和window)
1、方法A:用“./”int main{ pid_t pid; pid = fork(); if (pid < 0) { exit(1); } else if (pid == 0) { execle(".\/pktctl.exe", "pktctl.exe", "-a","block in on eth0 proto t原创 2012-03-31 16:34:46 · 1239 阅读 · 0 评论 -
c++中boost库的下载、编译、使用
简介: 在c++中是没有正则表达式的,要想在c++中使用正则表达式,必须安装boost库,(目前,boost库还不是c++的标准库,相信在不久的将来,boost能和STL一样成为c++的标准,为万人造福) 一、boost库的下载 下载地址如下:http://sourceforge.net/projects/boost/files/boost/1.42.0/ 二、b原创 2011-09-28 17:49:31 · 1494 阅读 · 0 评论 -
C++虚函数表解析
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过转载 2012-04-11 09:17:24 · 817 阅读 · 0 评论 -
内存分配:堆、栈、全局变量/静态变量、代码区
C++中,内存分为5个区:堆、栈、自由存储区、全局/静态存储区和常量存储区。1、栈:是由编译器在需要时自动分配,不需要时自动清除的变量存储区。通常存放局部变量、函数参数等。2、堆:是由new分配的内存块,由程序员释放(编译器不管),一般一个new与一个delete对应,一个new[]与一个delete[]对应。如果程序员没有释放掉,资源将由操作系统在程序结束后自动回收 。原创 2012-04-13 15:15:41 · 4972 阅读 · 2 评论 -
致命错误并跳转至_debugger_hook_dummy = 0;的原因
转载地址:http://blog.sina.com.cn/s/blog_5d2184eb0100jt46.html在用vs2008时有一个致命错误是跳转到dbghook.h文件中的_debugger_hook_dummy = 0;语句。其原因时用到了不该用的变量。我遇到的情况更有以下两个: 1.调用了一个初始化失败的对象的某一个变量。(看书籍是否打开,没有判断打开成转载 2012-04-18 15:24:26 · 4193 阅读 · 1 评论 -
使用MFC实现文件的上传和下载
转载地址:http://www.cppblog.com/zgysx/archive/2006/09/28/13088.html1、下载文件Download(const CString& strFileURLInServer, //待下载文件的URLconst CString & strFileLocalFullPath)//存放到本地的路径{ ASSERT(strFil转载 2012-04-18 17:29:41 · 2765 阅读 · 0 评论 -
链表环状检测问题
链接地址:http://blancal08.blog.sohu.com/179047911.html链表环状检测重要有三种措施:1、追逐法;如 robinzsy。 (容易理解,跟生活贴近)2、表面登记法;如improgrammer。 3、内部登记法(打符号);如VivianSnow。 表面登记法和内部登记法其实是一个原理,就是把链表1的地址用数组、h转载 2012-05-04 10:08:54 · 686 阅读 · 0 评论 -
EAX ECX EDX EBX寄存器的作用
转载地址:http://blog.csdn.net/tszhao/article/details/7202264一般寄存器:AX、BX、CX、DXAX:累积暂存器,BX:基底暂存器,CX:计数暂存器,DX:资料暂存器索引暂存器:SI、DISI:来源索引暂存器,DI:目的索引暂存器堆叠、基底暂存器:SP、BPSP:堆叠指标暂存器,BP:基底指标暂存器EAX、E转载 2012-04-21 19:01:20 · 988 阅读 · 0 评论 -
extern “C” {}的作用
在一些面试题或者笔试题中,经常会遇到对extern “C”的考察。所以对这个知识点的掌握是很有必要的。 C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C语言是不同的。假设某个函数的原型为: void foo(int x,int y); 该函数被C编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字。C++原创 2012-05-05 21:33:43 · 502 阅读 · 0 评论 -
gcc生成.a静态库和.so动态库
转载地址:http://hi.baidu.com/bker1203/blog/item/822a3a22a671e95f9922ed40.html 我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行转载 2012-04-21 20:12:18 · 733 阅读 · 0 评论 -
在面试手写代码的能力、常考的代码
1、手写 int atoi(char *)的实现2、手写 char * itoa(int src_int, char * deststr, int radix) 返回值为char * 只是为了进行链式操作,类似于 char *strcpy( const char * src, char * dest);3、手写 char* dec2hex( const char * src); //注原创 2012-05-12 17:16:39 · 1446 阅读 · 1 评论 -
c++中的类型转换符
1、C中的转换:隐式转换和显示强制转换 1) 隐式转换 :所谓隐式类型转换就是语言本身,使用 编译器,自动就给我们专程了我们需要的类型 int num=5; float ab=num;//隐式转换 2)显示转换 float num =0.67;原创 2012-05-11 10:25:21 · 517 阅读 · 0 评论 -
写一个函数,检查字符是否是整数,如果是,返回其整数值
写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整型的函数) #include "stdafx.h"#include #include #include #include using namespace std;long strtoint(char *str,int length);int main(int argc,转载 2012-04-28 11:17:57 · 4479 阅读 · 1 评论 -
C++程序中出现undefined reference to ......
在C++代码中调用C的库文件,需加上extern "C",用来告知编译器:这是一个用C写成的库文件,请用C的方式连接他们。Undefined reference to 错误:这类错误是在连接过程中出现的,可能有两种原因∶一是使用者自己定义的函数或者全局变量所在源代码文件,没有被编译、连接,或者干脆还没有定义,这需要使用者根据实际情况修改源程序,给出全局变量或者函数的定义体;二是未定义的符号原创 2011-12-30 10:11:18 · 9403 阅读 · 0 评论 -
C++解析JSON的好文章
使用C++处理JSON数据交换格式一、摘要 JSON的全称为:JavaScript Object Notation,顾名思义,JSON是用于标记Javascript对象的,JSON官方的解释为:JSON是一种轻量级的数据传输格式。本文并不详细介绍JSON本身的细节,旨在讨论如何使用C++语言来处理JSON。关于JSON更具体的信息,可参见JSON官网:http://www.json.转载 2011-10-30 15:55:01 · 34979 阅读 · 4 评论 -
BSTR、LPSTR、LPWSTR、CString、VARIANT、COleVariant 、_variant_t、CComBSTR、_bstr_t
转载地址:http://blog.csdn.net/zhangqc1985/article/details/5113103转载 2011-11-30 20:05:44 · 72 阅读 · 0 评论 -
time相关的时间函数的应用于讲解
Time1、 要使用时间函数,必须包含#include 2、 相关数据结构Time_t 是_W64 long类型Struct tm {Int tm-sec;Int tm_min;Int tm_hour;Int tm_mday;Int tm_mo原创 2011-09-20 11:26:56 · 360 阅读 · 0 评论 -
c++之regex的应用
1、编译器:vs20032、语言:C++3、正则表达式库:boost4、程序要求: 对于土豆网的一个视频页面地址(eg:http://www.tudou.com/playlist/p/a67087i94457134.html),能够提取出来vid,即944原创 2011-09-29 16:13:15 · 732 阅读 · 0 评论 -
string中有关字符串结尾的问题
对于string字符串例如 string myString="hello world!welcome"; 要想得到“hello world”字符串其中一种方法a是: myString[11]=0;还有一种方式b是: myString[11]=原创 2011-09-22 20:54:56 · 751 阅读 · 0 评论 -
(转载)C++ XML解析之TinyXML篇
最近使用TinyXML进行C++ XML解析,感觉使用起来比较简单,很容易上手,本文给出一个使用TinyXML进行XML解析的简单例子,很多复杂的应用都可以基于本例子的方法来完成。以后的文章里会讲解使用Xerces进行C++ XML解析的例子,希望大家一起交流。 Tin转载 2011-09-22 09:59:26 · 391 阅读 · 0 评论 -
char * string 和cstring 之间的区别和联系以及相互转换
有关char* 、string、cstring 之间的区别和转换Char* 类型讲解1、 有关char* 是C语言保留的字符串风格可以使用数组或者字符指针来处理字符串。1) 数组形式char s_array[]=“helloworld”s_array 是地原创 2011-09-20 11:25:28 · 474 阅读 · 0 评论 -
【转】结构体中Char a[0]用法——柔性数组
有如下定义:typedef struct{ char a; char b[0]; }; 其中元素Char b[0];叫做柔性数组,主要用于使结构体包含可变长字段。详细内容如下:柔性数组; 【柔性数组结构成员 C99中,结构中的最后一个元素允许是未知大小的数组,这就叫做柔性数组成员,但结构中的柔性数组成员前面必须至少一个其他成员。柔性数组成员允许结构中包含一个大小转载 2011-10-20 15:31:12 · 3817 阅读 · 0 评论 -
编码格式大总结
编码方法大总结现有的主流编码格式有ansi、utf-8、unicode、gbk一、ansi ascii是7位字符集,它是美国信息交换标准代码的缩写,是为了美国英语通信所设计的。 为了能表示欧美文字重一些带有音调标号的文字,创建出了包含255个字符的8位ascii字符集,0-127与基本ascii一致,128-255之间的字符用于画图和画线。二、unicode原创 2011-10-12 11:07:55 · 739 阅读 · 0 评论 -
在vs2003中,dll的生成、编写、注意事项
dll的生成与编写一、dll生成的环境1、IDE:vs20032、编程语言:c++二、dll的编写过程1、建立dll工程 在vs2003的菜单选项中,选择“新建项目”,选择“visual C++的win32”,之后输入要新建的名字,在之后弹出的对话框中选择“dll”,另外把复选框“空项目”勾上。2、dll的编写#include using namespa原创 2011-11-05 12:54:05 · 3090 阅读 · 0 评论 -
g++和gcc的相同点和区别
gcc和g++的区别和联系gcc和g++都是GNU(一个组织)的编译器。1、对于.c后缀的文件,gcc把它当做是C程序;g++当做是C++程序;2、对于.cpp后缀的文件,gcc和g++都会当做c++程序。3、编译阶段,g++会调用gcc;4、连接阶段,通常会用g++来完成,这是因为gcc命令不能自动和c++程序使用的库连接。 gcc/g++在执行编译工作的时候,总共需原创 2011-10-27 13:28:09 · 3910 阅读 · 1 评论 -
c++常量类型 const全解
1、什么是const? 常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。(当然,我们可以偷梁换柱进行更新:) 2、为什么引入const? const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。 3、cons有什么主要的作用? (1)可以定义const常量,具有不可变性。 例如: const int Max转载 2011-11-22 10:40:09 · 92 阅读 · 0 评论 -
编写dll的接口中用string作为参数或者返回值的问题
运行带有dll接口含有string的程序中debug assert failed 错误1.一个原则:某个模块中分配的空间就应该由它来释放!比如说在dll中分配的空间就应由这个dll来释放,而不应该有main来释放,因为dll 中用来分配空间的环境可能和main中用来分配的环境不一样。关于这一点window核心编程中的dll里面进行了讲解。2.mian 中的如下语句: string原创 2011-11-05 17:17:04 · 4052 阅读 · 1 评论 -
C++虚函数表解析
转载地址:http://blog.csdn.net/hairetz/article/details/4137000转载 2011-11-28 16:20:37 · 421 阅读 · 0 评论 -
模板方式模式(一)
模板方法模式一、概念解释 模板方法模式是在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。二、类图(略)三、应用举例(略)四、应用场合1、由主类去操控一切,当他们需要的时候,自然会去调用子类。2、让类去实现一个算法,将一些步骤延迟到子类。五、注意事项 应用设计模式的主要原因之原创 2011-11-05 14:09:00 · 476 阅读 · 0 评论 -
在vs中编写c++代码,出现连接时Link2005错误
造成link2005错误主要有以下三种:一、重复定义全局变量。可能存在两种情况: A、对于一些初学编程的程序员,有时候会以为需要使用全局变量的地方就可以使用定义申明一下。其实这是错误的,全局变量是针对整个工程的。正确的应该是在一个CPP文件中定义如下:intg_Test;那么在使用的CPP文件中就应该使用:extern int g_Test即可,如果还是使用intg_Test,那么就会产生原创 2011-11-05 16:14:05 · 1184 阅读 · 0 评论 -
sizeof和strlen的区别
1.sizeof是类似于宏定义的特殊关键字,strlen是函数 2.sizeof a 也不能写成sizeof(a) sizeof(int) ,但是不能写成sizeof int 3.sizeof(数组名),得到的是数组中元素的大小×4 sizeof(函数形参的数组名),此时的数组名退化为一个指针,所以是4 strlen(char类型的数组名),得到的元素的个数,原创 2012-09-26 15:31:44 · 531 阅读 · 0 评论