摘要:1、编译选项的位置以VS2005为例,这样子打开:1) 打开项目的Property Pages对话框2) 点击左侧C/C++节3) 点击Code Generation节4) 右侧第六行Runtime Library项目2、各个设置选项代表的含义编译选项包含静态链接的lib说明/MD_MT、_DLLMSVCRT.lib多线程、Release、DLL版本的运行时库/MDd_DEBUG、_MT、_DLLMSVCRTD.lib多线程、Debug、DLL版本的运行时库/MT_MTLIBCMT.lib多线程、Release版本的运行时库/MTd_DEBUG、_MTLIBCMTD.lib多线程、Debug版
阅读全文
随笔分类 - C/C++
摘要:总有各种各样的编译链接过程和产生的文件,为加深记忆及方便下次查看,特作记录 文件篇: .map:映射文件(.map)包含了正在链接的程序的以下信息 1.模块名,是文件的基本名称 2.程序头部的时间戳(不是从文件系统中获得) 3.程序中组的列表,包含每个组的起始地址(assection:offset)...
阅读全文
摘要:总有一些容易搞错的关于类的小细节,用这篇随笔记录一下~1.类的const成员变量必须也只能在构造函数的参数列表中初始化。
阅读全文
摘要:虚表(vtable)一直都好像很神秘的样子,今天工作中涉及到虚表,就做下一些记录吧~ 1.每一个拥有虚函数的类都有一个虚表,注意是虚函数。 2.虚表实际上是一个函数指针数组,记录了本类所有虚函数的地址。当类对象调用虚函数时,会根据对应关系从虚表中获得虚函数指针,再去执行函数,这种行为称为晚绑定。 3...
阅读全文
摘要:记录一下,下次搞不清可以来看看。 静态编译/动态编译 静态编译:是指编译器在编译可执行文件的时候,将可执行文件需要调用的对应的动态链接库中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候可以不依赖动态链接库。 动态编译:动态编译的可执行文件需要附带一个动态链接库,在执行时,需要调用其动...
阅读全文
摘要:一、数据传输指令 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字节. MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送. PUSH 把字压入堆栈. POP 把字弹出堆栈. PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈. POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈. PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈. POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈. BSWAP 交换32位
阅读全文
摘要:要使用windbg分析dump必须加载正确的符号,可以通过设置Symbols File Path为"D:/Symbols;SRV*D:/Symbols*http://msdl.microsoft.com/download/symbols",当windbg在D:/Symbols中找不到需要的符号时,...
阅读全文
摘要:static_cast <type-id> ( expression )@breif:将表达式expression从当前类型转换为type-id所指类型。@remark:没有运行时的类型检查来保证转换的安全性。static_cast操作符可以被用来一把一个指针变量转换为基类型把一个指针变量转换为派生类型。这样的转换并不总是安全。总之,你可以使用static_cast当你想当你想把数字类型比如enums、int转换为float,并且你对转换的数据类型有把握。static_cast不像dynamic_cast那么安全,因为static_cast不会运行时类型检查,但dynamic_ca
阅读全文
摘要:新建工程时会自动生成一些文件,编译链接时也会生成各种各样的文件,下面做一些记录及说明~stdafx.h:stdafx.h为预编译头文件。用于包含工程中很多文件需要包含的文件,编译器预先编译包含在stdafx.h中的文件,再以后的编译中使用之前预先编译好的结果,不用再次编译,提高了编译速度(当然,如果stdafx.h或者stdafx.cpp修改了需要重新编译)。
阅读全文
摘要:函数原型:LONG InterlockedIncrement( LONG volatile* Addend); 先来看看MSDN上怎么说:InterlockedIncre函数增加指定32位变量的值并检查结果。这个函数防止多余一条线程同时访问同一个变量。要操作64位的变量,使用Interloc...
阅读全文
摘要:1.static变量被放在程序的全局存储区中,这样可以在下次调用的时候还可以保持原来的赋值。这一点是它和堆变量和栈变量的重要区别。2.变量用static告知编译器,自己仅在变量的作用范围内可见,不能被其他文件引用。这一点是和全局变量的区别。3.访问static变量、全局变量要考虑多线程问题。4.非类的staitc变量会自动初始化。5.static非成员函数的作用域仅限于本文件,不能被其他文件引用。在类中,有static成员变量及static成员函数1.static成员变量是这个类的公共变量,不是该类某个对象的成员变量,不能通过this指针访问,必须通过作用域操作符"::"访
阅读全文

浙公网安备 33010602011771号