Welcome 微信登录

首页 / 软件开发 / C++

探秘static:类不需实例化就能用?

探秘static:类不需实例化就能用?

探秘static:类不需实例化就能用?2015-05-03一般情况下,需要用到某个类的时候,都必须先实例化这个类,才能对其进行调用。在编程过程中发现,有些类不用实例化就可以直接拿来使用,使用它的字段、方法等等。这时候,靠的就是static作用。static英文意思为“静止的,静态的”,在OOP中可以作为修饰符,类、字段、属性、方法等被static修饰后,变为静态类、静态字段、静态属性、静态方法……stat...
关于实时错误453:找不到DLL入口点

关于实时错误453:找不到DLL入口点

关于实时错误453:找不到DLL入口点2015-05-03经过前几天的艰苦奋斗,我们的作品“飞聊“的基本功能已经实现,从现在开始进入窗口美化、调试、打包等阶段。不过今天上午问题又来了,在给窗体实现换肤功能的时候,虽然添加了模块(其中也已经调用声明了相应的API),窗体中也添加了相应的代码,但在运行时弹出了 “实时错误"453":找不到DLL入口点SkinH_AttachEx in SkinH_VB6.dll”...
用ATL和MFC来创建ActiveX控件

用ATL和MFC来创建ActiveX控件

用ATL和MFC来创建ActiveX控件2010-07-25摘要目前MFC和ATL代表了两种框架,分别面向不同类型的基于Windows的开发。MFC代表了创建独立的Windows应用的一种简单、一致的方法;ATL提供了一种框架来实现创建COM客户机和服务器所必须的样板文件代码。这两种框架在它们对于开发ActiveX的用途上会合了。我们将看看这两种框架是如何适用于创建ActiveX控件的——突出其优缺点,亲自经历创建一个控件的过程&m...
VC++中使用内存映射文件处理大文件

VC++中使用内存映射文件处理大文件

VC++中使用内存映射文件处理大文件2010-07-25摘要:本文给出了一种方便实用的解决大文件的读取、存储等处理的方法,并结合相关程序代码对具体的实现过程进行了介绍。引言文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理的函数和类,常用的有Win32 API的CreateFile()、WriteFile()、ReadFile()和MFC提供的CFile类等。一般来说,以上这些函数可以满足大多数场合的要求,但是对于某些特殊...
解析操作系统的内存分配(malloc)对齐策略

解析操作系统的内存分配(malloc)对齐策略

解析操作系统的内存分配(malloc)对齐策略2015-05-03问题:我们在写程序的时候经常发现程序使用的内存往往比我们申请的多,为了优化程序的内存占用,搅尽脑汁想要优化内存占用,可是发现自己的代码也无从优化了,怎么办?现在我们把我们的焦点放到malloc上,毕竟我们向系统申请的内存都是通过它完成了,不了解他,也就不能彻底的优化内存占用。来个小例子//g++ -o malloc_addr_vecmallc_addr_vec.cpp 编译#include&...
虚拟地景生成系统 1.1v

虚拟地景生成系统 1.1v

虚拟地景生成系统 1.1v2010-08-15 vckbase 简介地图是空间信息的载体,是对空间信息的抽象化、符号化描述。二维地图以其宏观性、整体性、抽象性等优点,至今仍然是人们认识空间信息的重要工具。随着计算机硬件与软件技术的飞速发展,三维可视化技术也日臻成熟。它以现实性、直观性和逼真的视觉效果收到了人们的日益青睐,特别在区域地形地貌表示、军事指挥、水利农田重大工程规划、城市仿真等案例中得到了广泛的应用。“虚拟地景生成系统”是基...
muduo库源码剖析(一) reactor模式

muduo库源码剖析(一) reactor模式

muduo库源码剖析(一) reactor模式2015-05-05一. Reactor模式简介Reactor释义“反应堆”,是一种事件驱动机制。和普通函数调用的不同之处在于:应用程序不是主动的调用某个API完成处理,而是恰恰相反,Reactor逆置了事件处理流程,应用程序需要提供相应的接口并注册到Reactor上,如果相应的时间发生,Reactor将主动调用应用程序注册的接口,这些接口又称为“回调函数”。二....
用InstallShield6.22制作带ODBC安装软件

用InstallShield6.22制作带ODBC安装软件

用InstallShield6.22制作带ODBC安装软件2010-08-15hoshine项目快接近尾声了,总要给自己精心制作的东东做一件漂亮的嫁衣吧。我选择 了InstallShield6.22来制作带ODBC数据库的安装软件,InstallShield可以说是 软件安装的最好制作工具。废话少说,让我们一齐动手!首先,用 InstallShield的project wizard创建一个standard setup project,如图一中输 入工程名,...
如何让程序自动管理线程

如何让程序自动管理线程

如何让程序自动管理线程2010-08-15赵明引言多线程是一种很好的程序机制,使用线程可以充分的利用电脑资 源,进行并行的业务处理。不过好的东西总有它的不足。线程是好,不过滥用, 或管理不当就会造成线程混乱,内存漏洞,造成电脑速度变慢,反应迟钝。想法于是有人提出能不能让线程自己管理自己,把这复杂的工作 交给电脑来处理。笔者经过多年的实践,终于用VC++实现了这一目的。大家知道在VC++中我们可以用CreateThread创建一个线程,该函数返回这线程 的H...
快速排序算法的C++实现

快速排序算法的C++实现

快速排序算法的C++实现2015-05-05快速排序基本特性时间复杂度:O(n*lgn)最坏:O(n^2)空间复杂度:最好情况下:O(lgn),最坏情况:O(n),平均情况:O(lgn)不稳定。关于快速排序的空间复杂度,谢谢@命运他爹 同学指正。详述一下。快速排序由于每次递归的时候会占用一个空间返回中间数位置,所以一次递归的空间复杂度为O(1)。最好情况和最坏情况下的递归深度为O(lgn),相应的空间复杂度就是O(lgn)最坏情况下的递归深度为O(n),空...
Thunk技术的一个改进

Thunk技术的一个改进

Thunk技术的一个改进2010-08-15 vckbase 南风Thunk技术,一般认为是在程序中直接构造出可执行代码的技术(在正常情况 下,这是编译器的任务)。《深度探索C++对象模型》中对这个词的来源有过考证 (在中文版的162页),说thunk是knuth的倒拼字。knuth就是大名鼎鼎的计算机经 典名著《The Art of Computer Programming》的作者,该书被程序员们称为 “圣经”,与牛顿的&ldqu...
std::bind技术内幕

std::bind技术内幕

std::bind技术内幕2015-05-05 cnblogs qicosmos引子最近群里比较热闹,大家都在山寨c++11的std::bind,三位童孩分别实现了自己的bind,代码分别在这里:木头云的实现:连接稍后补上。mr.li的实现:null的实现:这些实现思路和ms stl的std::bind的实现思路是差不多的,只是在实现的细节上有些不同。个人觉得木头云的实现更简洁,本文中的简单实现也是基于木头云的bind之上的,在此表示感谢。下面我们来分析一...
清理VC工程

清理VC工程

清理VC工程2010-08-15郑元林一、问题的提出在学习Visual C++的时候,会建立一个又一个的工程,这么多的工程,除 了管理上的问题之外,就是要占用大量的磁盘空间,而实际有用的东西并不大。 如果VC工程较长的时间不用,而又必须保留,那么清除其中无用的东西就势在必 行。在VC工程中,我们可以把工程目录下面的*.ncb、*.opt、*.plg文件删除是不 会影响工程的完整性,另外还有比较大的就是debug和release两个文件夹,也可 以删除。二、...
一个基于原始套接字的嗅探器

一个基于原始套接字的嗅探器

一个基于原始套接字的嗅探器2015-05-07嗅探器这个代码我去年的时候就已经写过了,这个学期并不是非常忙,顺手复习网络,就又尝试着写了一遍。其实在写嗅探器的时候,最主要的还是要将网卡设置为混杂模式。在此基础之上,对抓到的数据包进行分析。这个是我写出来的效果图,目前只是方便于查看,连菜单都没添加:左面的界面显示的是主机和主机之间的链接信息,而右面则是选中主机信息之间的数据交互情况。我觉得我这个嗅探器应该是个失败品,或者说,没能够真正的将网卡设置为混杂模式。...
探讨性能测试中的计时问题

探讨性能测试中的计时问题

探讨性能测试中的计时问题2010-08-15 vckbase 龚勋在系统测试时,尤其在需要测试算法或者某些模块的运行时间时,往往需要调 用一些时间函数库(如VC中的timeGetTime等可以获取毫秒级的时间),在待测试 的模块前后分别测试时间,然后,计算前后两个时间的差值,就得到模块的运行 时间,如图 1。图 1 一个典型的模块计时方法但是,使用原始的计时函数直接进行时间测试 在很多复杂情况下不方便,如图 1,当在一个模块中有多个子模块需要分别计时 ,所...
<< 281 282 283 284 285 286 287 288 289 290 >>