摘要:
http://fuck.0day5.com/?p=563PHP突破Disable_functions执行Linux命令利用dl函数突破disable_functions执行命令http://www.xfocus.net/articles/200704/915.html编写PHP扩展三步曲http://blog.csdn.net/taft/article/details/596291http://blog.csdn.net/alexdream/article/details/2213344 阅读全文
posted @ 2013-08-18 23:29
问笑
阅读(871)
评论(0)
推荐(0)
摘要:
一、坐标空间1、Win32应用程序设计接口(API)使用四种坐标空间:世界坐标系空间、页面空间、设备空间和物理设备空间。应用程序运用世界坐标系空间对图形输出进行旋转,斜切或者反射。2、Win32API把世界坐标系空间和页面空间称为逻辑空间,最后一种坐标空间(即物理设备空间)通常指应用程序窗口的客户区。但是它也包括整个桌面、完整的窗口(包括框架、标题栏和菜单栏)或打印机的一页或绘图仪的一页纸。物理设备的尺寸随显示器、打印机或绘图仪所设置的尺寸而变化。二、转换1、如要在物理设备上绘制输出,Windows把一个矩形区域从一个坐标空间拷贝到(或映射到)另一个坐标空间,直至最终完整的输出呈现在物理设备上 阅读全文
posted @ 2013-08-18 20:10
问笑
阅读(603)
评论(0)
推荐(0)
摘要:
应该说 窗口坐标 是相对于 视口坐标 而言 逻辑坐标 是相对于 设备坐标 而言补充: 窗口坐标是基于逻辑坐标的. 视口坐标是基于设备坐标. 上面这两话是抄自百度百科的,我的理解是: 窗口坐标的单位长度与逻辑坐标的单位长度相同,也就是说,当你在窗口坐标上画图时,传递给画图函数的参数的单位是逻辑单位。但是当windows把图形输出到屏幕上时,并不是直接把图形按照它在窗口坐标上的位置输出到屏幕上的,而是先把它在窗口坐标上的值转换成视口坐标上的值(与此同时,也把逻辑坐标按照不同的映射模式转换成设备坐标)。下面举例说明: 由于 一般情况下,窗口原点是与视口原点相同的,(也就是说,位于屏幕上的同一个位置) 阅读全文
posted @ 2013-08-18 19:53
问笑
阅读(724)
评论(0)
推荐(0)
摘要:
说起C++的模板及模板特化, 相信很多人都很熟悉 ,但是说到模板特化的几种类型,相信了解的人就不是很多。我这里归纳了针对一个模板参数的类模板特化的几种类型, 一是特化为绝对类型; 二是特化为引用,指针类型;三是特化为另外一个类模板。这里用一个简单的例子来说明这三种情况://generalversiontemplateclassCompare{public:staticboolIsEqual(constT&lh,constT&rh){returnlh==rh;}};这是一个用于比较的类模板,里面可以有多种用于比较的函数, 以IsEqual为例。一、特化为绝对类型也就是说直接为某个 阅读全文
posted @ 2013-08-18 13:02
问笑
阅读(589)
评论(0)
推荐(1)
摘要:
在构造函数中,想知道这个类是否按期望那样是否构造成功,很多人是喜欢在构造失败情况下抛出一些异常。例:class A1{public:A1(){pI = new int;cout << "A1()" << endl; // something error;throw("A1 error");}~A1(){delete pI;cout << "~A1()" << endl;}private:int *pI;};int _tmain(int argc, _TCHAR* argv[]){A1 * 阅读全文
posted @ 2013-08-18 12:38
问笑
阅读(281)
评论(0)
推荐(0)
摘要:
C++ 用异常使得可以将正常执行代码和出错处理区别开来。 比如一个栈,其为空时,调用其一个pop 函数,接下来怎么办? 栈本身并不知道该如何处理,需要通知给其调用者(caller),因为只有调用者清楚接下来该怎么做。 异常,就提供了一个很好机制。 但是异常需要操作系统,编译器,RTTI的特性支持。下面围绕一个问题 “为什么析构函数不能抛出异常?” 展开C++中异常的实现。Effective C++ 里面有一条”别让异常逃离析构函数“,大意说是Don't do that, otherwise the behavior is undefined. 这里讨论一下从异常的实现角度,讨论一下为什 阅读全文
posted @ 2013-08-18 12:30
问笑
阅读(451)
评论(0)
推荐(0)
摘要:
智 能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是 使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。每次创建类的新对象时,初始化指针并将引用计数置为1;当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增加与之相应的引用计数;对一个对象进行赋值时,赋值操作符减少左操作数所指对象的引用计数(如果引用计数为减至0,则删除对象),并增加右操作数所指对象的引用计数;调用析构函数时,构造函数减少. 阅读全文
posted @ 2013-08-18 12:12
问笑
阅读(269)
评论(0)
推荐(0)
摘要:
一、简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto_ptr、boost::scoped_ptr、 boost::shared_ptr、boost::scoped_array、boost::shared_array、 boost::weak_ptr、boost:: intrusive_ptr。你可能会想,如此多的智能指针就为了解 阅读全文
posted @ 2013-08-18 11:41
问笑
阅读(203)
评论(0)
推荐(0)
摘要:
auto_ptr是当前C++标准库中提供的一种智能指针,或许相对于boost库提供的一系列眼花缭乱的智能指针, 或许相对于Loki中那个无所不包 的智能指针,这个不怎么智能的智能指针难免会黯然失色。诚然,auto_ptr有这样那样的不如人意,以至于程序员必须像使用”裸“指针那样非常小心的使 用它才能保证不出错,以至于它甚至无法适用于同是标准库中的那么多的容器和一些算法,但即使如此,我们仍然不能否认这个小小的auto_ptr所蕴含的价 值与理念。 auto_ptr的出现,主要是为了解决“被异常抛出时发生资源泄漏”的问题。即如果我们让资源在局部对象构造时分配,在局部对象析构时释放。这样即使在函数. 阅读全文
posted @ 2013-08-18 11:25
问笑
阅读(217)
评论(0)
推荐(0)
摘要:
C++中指针申请和释放内存通常采用的方式是new和delete。然而标准C++中还有一个强大的模版类就是auto_ptr,它可以在你不用的时候自动帮你释放内存。下面简单说一下用法。[cpp] view plaincopy用法一:std::auto_ptrm_example(newMyClass());用法二:std::auto_ptrm_example;m_example.reset(newMyClass());用法三(指针的赋值操作):std::auto_ptrm_example1(newMyClass());std::auto_ptrm_example2(newMyClass());m_e 阅读全文
posted @ 2013-08-18 11:17
问笑
阅读(495)
评论(0)
推荐(0)
摘要:
1、每个类必须有一个构造函数,否则没法创建对象; 2、若programer没有提供任何构造函数,则C++提供一个默认的构造函数,该默认构造函数是无参构造函数,它仅负责创建对象,不做任何初始化的工作; 3、只要programer定义了一个构造函数(不管是无参还是有参构造),C++就不再提供默认的默认构造函数。即如果为类定义了一个带参的构造函数,还想要无参构造函数,就必须自己定义; 4、与变量定义类似,在用默认构造函数创建对象时,如果创建的是全局对象或静态对象,则对象的位模式全为0,否则,对象值是随机的。 注:2所述,C++在某些情况下会提供默认构造函数,但在某些情况下并不会自动调用。 实事上,当 阅读全文
posted @ 2013-08-18 11:07
问笑
阅读(733)
评论(0)
推荐(0)
摘要:
代码审核文件 plugins\phpdisk_client\passport.php1234567891011121314151617181920$str = $_SERVER['QUERY_STRING'];if($str){parse_str(base64_decode($str));// 触发函数}else{exit('Error Param');}/*$username = trim(gpc('username','G',''));$password = trim(gpc('password' 阅读全文
posted @ 2013-08-18 09:45
问笑
阅读(464)
评论(0)
推荐(0)
摘要:
#include "stdafx.h"#include "stdio.h"/* 冒泡排序日期:2013月8月18IDE:VC6.0*/void Sort(int arr[],int n){ int tmp; for(int i=0; i<n; i++) { for(int j=1; j<n-i; j++) { if ( arr[j] < arr[j-1] ) { tmp = arr[j-1]; arr[j-1] = arr[j]; ... 阅读全文
posted @ 2013-08-18 09:12
问笑
阅读(134)
评论(0)
推荐(0)
浙公网安备 33010602011771号