- 博客(24)
- 收藏
- 关注
原创 expat总结
#include<iostream>#include <windows.h>#include "expat.h"using namespace std;#ifdef XML_LARGE_SIZE#if defined(XML_USE_MSC_EXTENSIONS) && _MSC_VER < 1400#define X...
2015-04-02 23:06:12 511
原创 ATL总结二
1.智能指针 智能指针封装了 QueryInterface / Release 以及 CoCreateInstance / Release 两对方法,因此使用该类的用户不用担心com是否被释放。 ATL提供了两个智能指针类: CComPTR / CComQIPtr。CComPtr<IMath> ptrMath;HRESULT hr; hr = CoCrea...
2015-04-01 21:29:53 176
原创 ATL总结一
ATL(Active Template Library,活动模板库)使用c++模板作为自己的实现的基本特性。模板分为两种:函数模板和类模板。 一. ATL如何使用模板 以下例子并没有涉及真正的ATL类,只是展示ATL如何使用模板计数在基类里访问成员函数。首先我们看下面的两个类:class CBase{public: CBase(){} ~CBase()...
2015-04-01 17:18:25 301
原创 Com总结三
Com里面的引用计数使用要特别小心,为了避免误调AddRef和Release,我们可以使用以下一些方法来简化编程。 一. 使用智能指针 智能指针实际上重载了-->操作符,所有在智能指针上调用的函数,实际上上都转发到了内部的接口指针上。而当智能指针离开了作用域的时候,会自动调用析构函数,而我们可以在析构函数中对内部的接口指针调用Release操作。在ATL中,有实...
2015-03-31 19:25:44 95
原创 Com总结二
一. HRESULT 对于该返回值,只要记住一点,一定要使用SUCCEEDED和FAILED宏来判断,不要直接把它与S_OK,S_FALSE等等来比较。 二. GUID 包含头文件OBJBASE.H。 由于GUID值占用了16个字节,因此一般不用值传递GUID参数。而大量使用的是按引用传递,这就是为什么QueryInterface接受一个常量引用参数的原...
2015-03-31 17:17:20 140
原创 Dll入门
有一些东西是一定要动手实现的,学习有的点可以慢慢积累,但是有一些基本的盲区是一定不要跨过去的。 这里不过多的讲解Dll的内容,只是记录一下常用的两种dll编写方法。 一. Dll的编写 第一种方法: 首先打开vs2010---> win32 application--->选择一个dll工程(MyDll)----&g...
2015-03-31 11:03:22 127
原创 Com总结一
(1)Com组件是? Com组件是以Win32动态链接库(DLL)或可执行文件(EXEs)的形式发布的可执行代码组成的。 (2)接口概念 DLL的接口就是它所输出的那些函数;C++类的接口则是该类的一个成员函数集。对于Com来说,接口是一个包含一个函数指针数组的内存结构。每一个数组元素包含的是一个由组件所实现的函数的地址。对于Com而言,接口就此内存结构。 ...
2015-03-31 10:18:31 106
原创 c++---高级技术
1. 异常对象没有专门的头文件。 2.不应该抛出指向局部对象的指针以及局部对象。 3.异常的类型与与catch说明符完全匹配: (1)允许从非const 到 const的转换。 (2)允许从派生类到基类的转换。 (3)将数组转换为指向数组类型的指针,将函数转化为指向函数类型的指针。 不允许标准算术转换,比如int到do...
2015-01-04 00:13:57 322
原创 Java学习之----for,foreach,iterator之间的联系
先参考http://blog.csdn.net/iamkila/article/details/7266890
2014-04-28 21:00:30 113
原创 c++面试题
1. 如何设计一个不能被继承的类 http://snoweagleofself.blog.163.com/blog/static/9446014320088183176994/
2013-10-08 21:55:54 71
原创 各类公司2014笔试题
美团:http://www.itmian4.com/forum.php?mod=viewthread&tid=3511&fromuid=1http://www.itmian4.com/forum.php?mod=viewthread&tid=3463&fromuid=1 创新工场:http://www.itmian4.com/forum.ph...
2013-09-17 09:33:58 108
原创 面试题汇总
1.题目:给定数组A,大小为n,数组元素为0到n-1的数字,不过有的数字出现了多次,有的数字没有出现。请给出算法和程序,统计哪些数字没有出现,哪些数字出现了多少次。要求在O(n)的时间复杂度,O(1)的空间复杂度下完成。 解答:这种题目,既然只用这么少的空间,要么从异或角度考虑,相当于只能有一个变量出现。要么充分的利用给定的数组空间。而且时间复杂度为O(n)的话,必然就是遍历那...
2013-08-30 00:53:46 85
原创 java--------为什么重写equals函数的时候也要重写hashCode
equals默认的比较是比较两个对象的引用是否相等,在Java里面,所有的东西都是对象,就像c++里面的指针new出来的东西,因此不可能有两个是一样的,当我们想改变这种判断准则时,则必须重写equals方法,比方说当两个对象所代表的值相等我们就认为他们相等。 hashCode方法主要是返回这个对象在内存中的hash码,这个hash码是唯一标识这个对象的,跟着需要重写他的...
2013-07-14 10:17:44 108
原创 图论----拓扑排序
拓扑排序是,将有向图中每个点按照一定的顺序排列。如果有向边 vi->vj存在,那么vi结点必须出现在vj之前。 算法思想: (1)首先我们利用邻接表保存图结构。 (2)利用一个数组indegree[]数组来记录每个结点的入度。 (3)将入度为0的点加入到堆栈 stack中。 (4)将结点node出栈,清除node发出每一条边no...
2013-03-31 15:20:56 138
原创 动态数组的相关知识(转载)
对于简单的一维数组动态内存分配和释放,相信大家都是知道的,不过还是举个例子吧: int *array1D; //假定数组长度为m //动态分配空间 array1D = new int [m]; //释放 delete [] array1D;如果我们使用const来修饰数组的话,必须这样来定义: const int *a = new int[10](...
2013-03-11 11:19:17 117
原创 vc---工程打不开问题解决(转载)
在vc编程中,经常遇到dsw工程文件无法打开,或者打开后看不到类和变量的问题。特别是把代码从一台电脑上copy到另一台电脑上以后,常常会碰到这种奇怪的问题。有时在编辑状态下也会发生成员变量或函数提示不能显示的问题。 遇到这些情况,首先要检查一下进程中是否有没有关闭的vc进程“msdev.exe”,有的话先结束进程。然后到工程目录,即dsw文件所在的目录下,删除.ncb文件、.ap...
2012-07-07 15:03:28 419
原创 图像编程----如何编写SetTimer的回调函数实现动画效果
我们一般用到settimer函数的时候,第三个参数一般都设置为NULL,这意味着调用缺省的回调函数,叫OnTimer,如果你有几个定时器的话,那么也可以在OnTimer函数里边判断后做出不同的反应。 但今天我们自己编写回调函数来响应定时器的函数! 1.首先我们需要编写两个静态的回调函数,放在主对话框类中,声明如下: public: static vo...
2011-09-23 12:53:12 312
原创 图像编程----如何实现一个透空图片
在mfc中,我们经常碰到的一个情况是,想在界面上添加一个图片,比方说一个小人,但是我们不想要除了图片中小人外的其它图片,怎么办? 我们需要准备三个素材,第一个背景图片,第二个你想要添加的原始小人图片(除小人外其余地方为黑色),第三个屏蔽图片,该图片将你想要扣出来的图片的区域全部涂成黑色,其余部位为白色。 ...
2011-09-22 16:45:25 135
原创 排序算法--桶排序(基数排序)
1.基数排序 基数排序的思想是针对整数的每一位进行排序,它是一种稳定的排序,从个位开始比较,小的再前面,大的排在后面,然后顺次取出,对取出后的数据组针对下一位再进行排序,一直排到位数最多的那一位排完为止! 当桶排序的输入符合均匀分布时,可以期待线性期望时间运行,它的时间复杂度大概为o(n*m);n代表数组长度,m代表最长位的位数。 但桶排序的缺点是耗费空间比较大,...
2011-08-15 10:55:33 166
原创 堆排序算法实现
1.堆排序. 平均复杂度,最坏复杂度都是nlogn#include <iostream>using namespace std;//获得父结点,从0开始#define get_Parent(i) ( (i+1) >> 1 -1) //获得左孩子节点 #define get_LeftChild(i) ( (i+1) << ...
2011-08-11 16:57:52 77
原创 多线程编程
多线程相关的编程,有很多说法,有人说应该去除,因为他带了了潜在的安全性,但有人有建议保留,因为他充分利用了cpu,只要我们注意其中的安全问题,所以多线程可以为我们造福,所以关于多线程编程,我们应该更多注意安全性的问题! 1.创建一个线程 (1)利用CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, DW...
2011-08-08 19:59:17 135
原创 在用VC6.0写程序调试时,初学者总是会遇到一些错误,针对如下错误主要是因为MFC类库没有引用所出现的问题。...
在用VC6.0写程序调试时,初学者总是会遇到一些错误,针对如下错误主要是因为MFC类库没有引用所出现的问题。错误现象:nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadexnafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved exte...
2011-08-08 16:42:10 242
一个有趣的算法题
题目描述: 有一个100*1000矩形,要在这个矩形框中种树,要求每颗树之间的距离不得小于1米,问最多可以种多少树? 题目分析: 每两个树之间的距离必须大于等于1米,那么直觉上会想到等边三角形,这样就可以满足任意两个点之间的距离为1米,那么我们的想法就是用1米长的等边三角形去填充那个矩形。 我们以100为宽,1000为高,那么第一行可以种101颗,以正三角形来安放,那...
2011-07-21 16:43:06 138
原创 java网络
1.在一个类的静态的方法里边new一个该类的内部类是没戏的,解决办法,new 主类在调用一个方法,将你那条new语句放到该方法中 2。如何实现服务器客户端的连接通信服务器端:ServerSocket ss = new ServerSocket(8888);Socket s = ss.accept();DataInputStream dis = new DataInputStream(s.getI...
2011-07-18 23:18:49 69
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人