2014-10-06 Mithrilwoodrat
[CDATA[<p class="text" 在coursera上有个csapp有关的公开课 The Hardware/Software Interface 上面的lib2和csapp上的二进制炸弹实验一样,但是是64位的=.=,于是我还是去 http://csapp.cs.cmu.edu/public/labs.html上下载了一个32位的文件来练习. 下面是第一关的反汇编 Dump of assembler code for function phase_1: 0x08048b20 <+0>: push %ebp 继续阅读 »
2016-06-09 ruki
import的主要用于导入xmake的扩展类库以及一些自定义的类库模块,一般用于 自定义脚本(on_build, on_run ..)、插件开发、模板开发、平台扩展、自定义任务task等地方。 导入机制如下: 优先从当前脚本目录下导入 再从扩展类库中导入 导入的语法规则: 基于.的类库路径规则,例如: 导入core核心扩展模块 ```lua import("core.base.option") import("core.project") import("core.project.task") import("core") function main() -- 获取参数选项 继续阅读 »
2016-06-09 ruki
task是xmake 2.0开始新增的特性,也是插件开发的核心,在 插件开发之hello xmake 中我们简单介绍了下task的定义和使用 当然task不仅可以用来写插件,而且还可以写一些简单的自定义任务。。 我们先看下一个简单task实现: ```lua -- 定义一个名叫hello的task任务 task("hello") -- task运行的入口 on_run(function () -- 显示hello xmake! print("hello xmake!") end) ``` 这是一个最简单的task,相比插件task,它少了对 set 继续阅读 »
2016-01-10 LEo
1 检测系统是否win7 pascal function CheckWin7(): Boolean; begin GetWindowsVersionEx(Version); if Version.Major = 6 then begin Result := True; end else begin Result := False; end; end; 2 检测是否是silent安装 继续阅读 »
2016-08-30 曹强
写在前面 废话不多说,请看下面3道题,把6个console.log()的答案写下来,然后对照着在Console控制台里敲一遍,校验一下结果。 more 代码片段 ``` var A = function() {}; a.prototype = { num : 1, text : 'aaa' }; var x = new A(); // 第一题 console.log(x.num); console.log(x.text); // --这里是分割线-- var y = new A(); A.prototype = { num : 2 }; // 第二题 console.log(y.num); c 继续阅读 »
2016-04-29 zzyhappyzzy
堆栈 栈用于静态内存分配,堆用于动态内存分配,它们都存储在内存RAM里。 栈 栈上面的变量一般编译时就分配好了(如函数临时变量等)。栈遵循LIFO(后进先出),非常方便管理。 栈的内存分配一般由系统管理,开发者无需关心。 读取栈上的变量速度很快。 当一个方法function被调用时,它会被push进栈中,该方法中的参数和局部变量存储在栈中,当方法执行完后,该方法pop出来,相应的栈空间被释放。 堆 堆上的变量,一般在程序运行期分配。 读取堆上数据速度较慢。 堆上的元素能够在任何时候被读取,开发者也能够在任何时候申请堆内存空间并且释放申请的空间,所以管理堆上的变量比较复杂。 通常我们说的内存管理实际上是指堆内存管理。 堆的大小 继续阅读 »
2014-08-20 Xie Jingyi
最近在做一个项目,其中有一段判断一个Extended浮点数是否为整数的代码。我用如下方式实现: pascal function IsInt(F: Extended): Boolean; begin result := Trunc(F)-F = 0; //整数部分等于自身 end; 测试了许多样例都过了,唯独这个没过: pascal IsInt(4.000000002*1000000000); //False 调试时发现: Trunc(F)居然等于4000000001!开始以为是精度的问题,找了许多资料也没能解决。后来将Extended换成了Double,就通过了。百思不得其解中。 继续阅读 »
2016-06-13 Lu Huang
本节实现的是使用OpenCV里自带的函数,在双击图片时,以其为圆心绘制圆。 回调函数 捕捉鼠标事件 实现过程 引用与创建空图 不再赘述,代码如下。 ``` python import cv2 import numpy empty image img = np.zeros((512, 512, 3), np.uint8) ``` 设置回调函数 检测鼠标事件,如果左击鼠标则绘制圆。 ```python call back function def draw_circle(event, x, y, flags, param): if event == cv2.EVENT_LBUTTONDBLCLK: 继续阅读 »
2017-07-29 ruki
find_package This interface refers to the design of CMake for the find_* interfaces, which finds and adds package dependencies in the project target. lua target("test") set_kind("binary") add_files("*.c") on_load(function (target) import("lib.detect.find_package") target:add(find_package(" 继续阅读 »
2015-06-20 W.Y.
ES6
今天讨论的新特性让我非常兴奋,因为这个特性是 ES6 中最神奇的特性。 这里的“神奇”意味着什么呢?对于初学者来说,该特性与以往的 JS 完全不同,甚至有些晦涩难懂。从某种意义上说,它完全改变了这门语言的通常行为,这不是“神奇”是什么呢。 不仅如此,该特性还可以简化程序代码,将复杂的“回调堆栈”改成直线执行的形式。 我是不是铺垫的太多了?下面开始深入介绍,你自己去判断吧。 more 简介 什么是 Generator? 看下面代码: javascript function* quips(name) { yield "hello " + name + "!"; yield "i hope you are enjoy 继续阅读 »