C/C++
文章平均质量分 91
zafer
这个作者很懒,什么都没留下…
展开
-
[译]C++, Java和C#的编译过程解析
[译]C++, Java和C#的编译过程解析1.1.1 摘要我们知道计算机不能直接理解高级语言,它只能理解机器语言,所以我们必须要把高级语言翻译成机器语言,这样计算机才能执行高级语言编写的程序,在接下来的博文中,我们将介绍非托管和托管语音的编译过程。1.1.2正文非托管环境的编译过程(C/C++)纯C/C++的程序通常运行在一个非托管环境中,类是由头文件(.h)和实现文件(转载 2016-01-27 15:03:20 · 557 阅读 · 0 评论 -
三十分钟掌握STL
这是本小人书。原名是《using stl》,不知道是谁写的。不过我倒觉得很有趣,所以化了两个晚上把它翻译出来。我没有对翻译出来的内容校验过。如果你没法在三十分钟内觉得有所收获,那么赶紧扔了它。文中我省略了很多东西。心疼那,浪费我两个晚上。译者:karycontact:karymay@163.netSTL概述STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的转载 2012-06-29 11:42:09 · 752 阅读 · 0 评论 -
字节对齐
一、什么是对齐,以及为什么要对齐:1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些转载 2012-09-14 18:02:28 · 598 阅读 · 0 评论 -
Visual Studio 2010 自述文件(与之前版本的区别及注意事项)
Visual Studio 2010 自述文件有关最新版本的自述文件,请单击此处。1. 系统要求1.1. 支持的体系结构1.2. 支持的操作系统1.3. 硬件要求2. 已知问题2.1. 安装2.2. 卸载2.2.1. 在安装有早期版本的 Visual Studio 的计算机上2.2.2. 在未安装早期版本的 Visual Studio 的计算机上2.3. 维护2.4. 产品问题2.4.原创 2013-07-15 09:31:20 · 4609 阅读 · 0 评论 -
VS Ctrl+ Shift + 8 显示代码空格TAB符
VS Ctrl+ Shift + 8 显示代码空格TAB符原创 2013-07-08 10:17:14 · 1161 阅读 · 0 评论 -
策略模式---动态更改算法
引用:http://www.cnblogs.com/wenjiang/archive/2013/02/28/2937623.html策略模式是设计模式中很重要的一种,它的主要意图就是:定义了算法族,分别封装起来,让它们之间可以互相替换。它让算法的变化可以独立于使用算法的客户,使得我们可以随时更改它们而不影响客户端的代码,而客户端可以自由选择不同的算法执行。 要想了解策略转载 2013-03-01 09:48:00 · 511 阅读 · 0 评论 -
怎样从一个DLL中导出一个C++类
原文作者:Alex Blekhman 翻译:朱金灿原文来源:http://www.codeproject.com/KB/cpp/howto_export_cpp_classes.aspx译文来源:http://blog.csdn.net/clever101/article/details/3034743C++语言毕竟能和Windows DLLs能够和平共转载 2013-03-01 09:33:24 · 471 阅读 · 0 评论 -
C++中delete和delete[]的区别
一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论。做个备份,以免丢失。 C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。 关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2)转载 2013-03-01 09:29:22 · 411 阅读 · 0 评论 -
关于ERROR LNK 2005错误
关于ERROR LNK 2005错误相信很多人对这个错误是一点也不陌生,甚至有些害怕,我也一样。其实自己遇到过这样的问题,也每次都解决了这样的问题,但关键是自己没总结,所以总是再遇到再改,很烦人,查资料也麻烦。现在有时间了总结下。遇到问题我最喜欢F1,所以还是先看MSDN是怎么说的:To fix by checking the following possible causes转载 2013-01-21 17:49:10 · 622 阅读 · 0 评论 -
Windows操作系统堆和栈的区别
作者:中华视频网 2006-08-23 Windows操作系统堆和栈的区别一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程转载 2013-01-21 17:50:24 · 630 阅读 · 0 评论 -
error LNK2019: unresolved external symbol错误,解决
某次编写一个COM组件,接口定义好之后,增加了ZRX代码后编译链接,出现如下错误提示,百思不得其解。error LNK2019: unresolved external symbol "public: enum Zcad::ErrorStatus __thiscall ZcDbDatabase::readDwgFile(char const *,int,bool,wchar_t const转载 2013-01-19 10:57:59 · 1073 阅读 · 0 评论 -
link2005 错误的常见解决的方法
编程中经常能遇到LNK2005错误——重复定义错误,其实LNK2005错误并不是一个很难解决的错误。弄清楚它形成的原因,就可以轻松解决它了。造成LNK2005错误主要有以下几种情况:1.重复定义全局变量。可能存在两种情况:A、对于一些初学编程的程序员,有时候会以为需要使用全局变量的地方就可以使用定义申明一下。其实这是错误的,全局变量是针对整个工程的。正确的应该是在一个CPP文件中定转载 2013-01-28 17:30:30 · 2128 阅读 · 0 评论 -
创建project property sheet(.vsprops)减少工程设置错误和重复设置
举个例子,我最近在学习libevent代码,想在windows下跑一些例子,我编译了libevent生成了libevent.lib文件,那我这些例子要编译-->运行的时候,必须把libevent.lib和ws2_32.lib加到工程的“Add Dependencies”中,一个例子还好说,如果10几个例子,每个小例子一个工程,那就要加10几遍,而且要考虑到debug和release的区别...转载 2013-01-29 15:08:11 · 945 阅读 · 0 评论 -
Windows内存心得
Windows内存心得Windows的内存中,数据的存储并不是像我们想象的那样,它涉及从高位读和从低位读的问题。例如:LONG x1=0x12345678, x1在内存中显示为78 56 34 12; WORD x2=0x1234, x2在内存中显示为34 12即,windows已经定义的数据类型,以BYTE为单位,从高到低在内存中显示(BYTE内数据的高低位不转载 2012-12-13 16:24:12 · 446 阅读 · 0 评论 -
在ecb里使用自定义快捷键切换窗口(emacs)
大家都知道在emacs中切换窗口一般使用C-x o,切分窗口使用C-x 2,C-x 3。可是在ecb中已经把窗口切分成如下状态: 如何在directories/sources/methods/history间切换就成了问题。使用C-x o显然不是明智的选择,因为它不能直接切换到我想切换到的窗口。ecb提供了几个命令切换这些窗口: 通过M-x customize-opti转载 2013-10-16 10:23:02 · 2329 阅读 · 0 评论 -
emacs 快捷键(包括C/C++模式)
符号 C- 意思是按住 Ctrol 键M- 意指 Meta 键 (键盘上若无Meta 键,则可以ALT ESC 键来取而代之)DEL 意指退格键 (不是 删除(Delete) key)RET 意指回车键SPC 意指空格键ESC 意指Escape键TAB 意指Tab键像 "C-M-" (or "M-C") 这样连在一起的意味着同时转载 2013-10-16 10:00:11 · 1447 阅读 · 0 评论 -
OpenGL开发&学习_1_环境配置
OpenGL 开发环境配置 飘飘白云http://www.cnblogs.com/kesalin/(转载时请注明作者和出处。未经许可,请勿用于商业用途)OpenGL 下有一些重用的辅助库,比如glut,glee,glew等等,在windows平台下需要自己安装,因为微软为了推广自己的DX,在windows下只支持openGL 1.1版转载 2011-11-22 20:51:42 · 709 阅读 · 0 评论 -
单片机学习包括rs485 modbus协议
http://www.51hei.com/bbs/mcu-xuexi-1.html转载 2016-01-22 09:40:55 · 1205 阅读 · 1 评论 -
VS watch(监视)的技巧
eg: int *p = new int[100];原创 2014-11-13 11:05:22 · 14756 阅读 · 0 评论 -
清空stringstream缓存
ss.clear(); //实际上,它并不清空任何内容,它只是重置了流的状态标志而已!正确用法ss.str(""); 例子std::stringstream stream;std::string str;while(1){ //clear(),这个名字让很多人想当然地认为它会清除流原创 2014-08-28 10:46:52 · 935 阅读 · 0 评论 -
linux下的openGL配置
在linux下,只要装了Mesa和freeglut就可以了。 首先需要安装OpenGL的开发环境。现在Linux下有很多OpenGL的实现,Fedora 7中已经附带了Mesa,这是OpenGL一个开源的实现。安装Fedora时如果选中了开发环境,那么Mesa可能就已经安装好了。如果你和我一样安装的时候没有选择开发,那么,可以通过yum来在线安装Mesa:首先查找Mesa相关的转载 2014-07-13 13:36:11 · 3887 阅读 · 0 评论 -
C++ vector容器 循环使用 完成数据清空,回收空间
程序段:?1234567vector int> vecInt;for (int i=0;i{ vecInt.push_back(i);}int j= vecInt.capacity(); //j=512原创 2014-06-10 15:01:33 · 3803 阅读 · 0 评论 -
C++中嵌入python最基本用法
1. win下,首先,要在C++的工程文件总增加python安装目录下的include(附加包含目录,如C:\Python26\include)和libs目录(附加库目录,如C:\Python26\libs,和附加依赖项,如Python26.lib)。注意工程文件可能需要使用Release模式,因为用Debug模式时,会需要Python26_d.lib,而你的安装目录下是不一定有这个文件的原创 2014-06-10 10:52:33 · 1702 阅读 · 0 评论 -
VC Console(控制台)程序如何隐藏CMD窗口
http://blog.csdn.net/fysy0000/article/details/6595416 #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )#include#include#include#include#pragma comment( li转载 2014-06-06 10:05:07 · 4427 阅读 · 0 评论 -
glGenVertexArrays:0x00000000处未处理的异常 0xC0000005:Access Violation.内存错误
1.确认调用的变量已初始化:如:glGenVertexArrays(nums,VAO),其中VAO必须进行初始化。2.确认是在非远程桌面连接状态下进行的调试。如:我用mstsc操作远程电脑,进行程序调试,一直报内存错误。我悲催的找了2天一直没有解决,后来,本地调试...通过!!!原创 2013-12-26 14:40:27 · 18663 阅读 · 1 评论 -
格式化固定长度字符串,格式化字符串里显示百分号
引自:http://blog.csdn.net/headmaster110/article/details/6427401一. 在编程过程中经常需要格式对齐,这就需要把字符串格式成固定长度: 1: C++提供了setiosflags()来设置输出格式,setw(int)设置输出宽度: cout转载 2014-03-26 10:24:09 · 2771 阅读 · 0 评论 -
C++标准库:bitset 用法整理
转自:http://happyboy200032.blog.163.com/blog/static/46903113201291252033712/std::bitset是STL的一部分,准确地说,std::bitset是一个模板类,它的模板参数不是类型,而整形的数值(这一特性是ISO C++2003的新特性),有了它我们可以像使用数组一样使用位。下面看一个例子:#includ转载 2014-04-02 09:52:22 · 637 阅读 · 0 评论 -
常用字符串长度计算函数
转自:http://www.cnblogs.com/augellis/archive/2009/09/24/1573660.html字符串的长度通常是指字符串中包含字符的数目,但有的时候人们需要的是字符串所占字节的数目。常见的获取字符串长度的方法包括如下几种。1.使用sizeof获取字符串长度sizeof的含义很明确,它用以获取字符数组的字节数(当然包括结束符\0)。对于ANSI字符串转载 2014-04-01 14:37:11 · 1206 阅读 · 0 评论 -
C++面试宝典2013版
1.new、delete、malloc、free关系delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要原创 2014-03-27 15:52:21 · 2475 阅读 · 0 评论 -
Dijkstra算法的C++实现
引自:http://blog.csdn.net/doufei_ccst/article/details/7841311对于该算法的实现思想网上已经有很多,所以这里只是简单介绍原理,重点在于实现代码。Dijkstra 算法,又叫迪科斯彻算法(Dijkstra),算法解决的是有向图中单个源点到其他顶点的最短路径问题。举例来说,如果图中的顶点表示城市,而边上的权重转载 2014-03-11 16:55:40 · 1214 阅读 · 0 评论 -
c语言字节对齐
转自:http://blog.csdn.net/21aspnet/article/details/6729724文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。 一、概念 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000转载 2012-12-10 11:08:17 · 442 阅读 · 0 评论 -
c++ 位域(Bit Fields)
C++ Bit FieldsVisual Studio 2012其他版本此主题尚未评级 - 评价此主题Classes and structures can contain members that occupy less storage than an integral type. These me转载 2012-12-10 11:14:02 · 514 阅读 · 0 评论 -
C++字符串相加
正确的 :std::string + std::stringstd::string + const char *const char * + std::stringstring + charchar + string错误的:char + const char *//令自己意想不到const char * + char//令自己意想不到const char *转载 2012-10-22 14:52:37 · 3729 阅读 · 0 评论 -
CString与double int间的转换
网上有N种方法可以实现,这里只是总结其中的一小部分double di = 0;CString s = _T("123.456");di = _ttoi(s);//但是传小数时,整数!!或di = _tstof(s.GetBuffer(0));//传小数或di = atof({LPCSTR}s)/////////////////////////////原创 2012-04-23 17:28:55 · 562 阅读 · 0 评论 -
error C3861: back_inserter : 找不到标识符(+补充新问题)
Visual Studio 2010中的VC++对C++0x提供了很多支持,很多标准也与C++0x接轨。这样做的好处是很多的,但同时也会导致以前一些不符合C++0x规范的代码无法像原来那样工作。问题:error C3861: 'back_inserter': identifier not found解决方法:#include ﹤iterator﹥问题在于,back_inserter()原创 2012-03-24 10:00:38 · 5358 阅读 · 0 评论 -
MSVCRTD.lib(crtexew.obj) error LNK2019错误
在使用Microsoft Visual Studio 2005从现有的cpp文件新建一个工程,编译无法通过,出现如下的对话框:无法启动程序"e:\mydocument\test.exe"系统找不到指定的文件。MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStar转载 2012-03-01 10:17:51 · 755 阅读 · 0 评论 -
VC 的几个str函数
函数名: stpcpy功 能: 拷贝一个字符串到另一个用 法: char *stpcpy(char *destin, char *source);程序例:#include #include int main(void){char string[10];char *str1 = "abcdefghi";stpcpy(string, str1);printf转载 2011-12-20 11:06:11 · 714 阅读 · 0 评论 -
MFC中的CDC 绘图
绘图一般在视图类的(屏幕/打印机)绘图消息响应函数OnDraw中进行,例如:void CTestView::OnDraw(CDC* /*pDC*/) { CTestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return;转载 2011-11-04 17:44:25 · 1530 阅读 · 0 评论 -
C++中MessageBox()中参数error C2664:
int MessageBox( HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType);如果直接用MessageBox(NULL,"内容","标题",..)会 报错应该在“......”加为_T("........"),即MessageBox(NULL,_T("......."),_T(原创 2011-11-16 17:51:10 · 562 阅读 · 0 评论 -
将结构体写入为二进制文件(C++)
在struct中,我定义了int,unsigned char,string,double等类型。开始时,我写入用来流fstream,(“”,ios::out||ios::binary);write方法对于char 及string 来说,可以实现写入,但是当写double时我遇到了问题,最终无法解决,因为write(×char,size_t),我无法将double->char*.于是,采用了原创 2011-11-24 13:20:09 · 2026 阅读 · 0 评论