分类: |

vmware 10的注册码生成器

gcc/g++命令参数

 gcc/g++ 命令的常用选项

格式(选项 && 解释 )
linux gcc常用命令集合:
-o FILE      &&     指定输出文件名,在编译为目标代码时,这一选项不是必须的。如果FILE没有指定,缺省文件名是a.out.
-c           &&     只编译生成目标文件,不链接
-m486        &&     针对 486 进行代码优化。
-O0          &&     不进行优化处理。
-O 或 -O1 &&     优化生成代码。
-O2          &&     进一步优化。
-O3 比 -O2 &&     更进一步优化,包括 inline 函数。
-w           &&     关闭所有警告,建议不要使用此项
-Wall        &&     允许发出gcc能提供的所有有用的警告,也可以用-W(warning)来标记指定的警告
-werror      &&     把所有警告转换为错误,以在警告发生时中止编译过程                             
-MM          &&     输出一个make兼容的相关列表
-v           &&     显示在编译过程的每一步中用到的命令
-E           &&     只运行 C 预编译器。
-shared      &&     生成共享目标文件。通常用在建立共享库时。
-static      &&     链接静态库,即执行静态链接
-lFOO        &&     链接名为libFOO的函数库
-g           &&     在可执行程序中包含标准调试信息
-ggdb        &&     在可执行程序中包含只有GNU debugger才能使别的达两条是信息
-O           &&     优化编译过的代码
-ON          &&     指定代码优化的级别为N,o<=N<=3
-ansi        &&     支持ANSI/ISO C的标准语法,取消GNU的语法扩展中与该标准有冲突的部分(但这一选项并不能保证生成ANSI兼容的代码) 这一选项将禁止 GNU C 的某些特色, 例如 asm 或 typeof 关键词。
 
-pedantic &&     允许发出ANSI/ISO C标准所列出的所有警告
-pedantic -errors      &&     允许发出ANSI/ISO C标准所列出的所有错误
-traditional           &&     支持Kernighan & Ritchie C语法(如用旧式语法定义函数);如果不知道这个选项的含义,也没有关系

-IDIRECTORY      &&     指定额外的头文件搜索路径DIRECTORY。
-LDIRECTORY      &&     指定额外的函数库搜索路径DIRECTORY。
-DFOO=BAR &&     在命令行定义预处理宏FOO,其值为BAR
-IDIRNAME &&     将DIRNAME加入到头文件的搜索目录列表中
-LDIRNAME &&     将DIRNAME加入到库文件的搜索目录列表中,缺省情况下gcc 只链接共享库
-DMACRO      &&     以字符串“1”定义 MACRO 宏。
-DMACRO=DEFN     &&     以字符串“DEFN”定义 MACRO 宏。
-UMACRO      &&     取消对 MACRO 宏的定义。

个人使用:
使用gcc生成可执行文件后使用 ./filename执行

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 7165

 想要在Javascript中调用C++的方法,只要实现CHtmlView的OnGetExternal方法就可以,OnGetExternal要返回一个IDispatch的指针。关于如何实现取得这个IDispatch我研究了几天,甚至把那本《Com技术内幕》都看了一遍。

我最开始尝试的方法是直接实现一个直接继承于IDispatch的类,实现它的GetIDsOfNames和Invoke等等。不知道这是不是一个最原始的方法了,虽然可以实现,但是实现的过程非常的繁琐,而且在实现Invoke的时候还要处理各种类型的变量问题。

后来尝试的是再建立一个新的atl工程,然后实现一个标准的COM组件,最后在MFC中用标准的COM组件的调用方式来取得一个接口的IDispatch指针。虽然相对上面的这个方法,在需要写的代码量上已经减少了很多了,但要生成一个dll。

最后在网上发现了一个方法,应该算算得上是最简单的方法了吧。通过CCmdTarget实现自动化服务器。

查看更多...

Tags: javascript MFC

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 17356

CHtmlView中添加NewWindow3

 头文件的中 

.h 
public: 
DECLARE_EVENTSINK_MAP()
void  NewWindow3(            
IDispatch  **ppDisp, 
VARIANT_BOOL  *Cancel, 
DWORD  dwFlags, 
BSTR  bstrUrlContext, 
BSTR  bstrUrl 
) ; 

.cpp 
#include  <exdisp.h> 
#include  <exdispid.h> 
#include  <Mshtml.h> 
#include  <Mshtmdid.h> 
#include  <shobjidl.h> 

BEGIN_EVENTSINK_MAP(CHtmlInExeView,  CHtmlView)
ON_EVENT(CHtmlInExeView,  AFX_IDW_PANE_FIRST,DISPID_NEWWINDOW3,NewWindow3,VTS_PDISPATCH  VTS_PBOOL  VTS_I4  VTS_BSTR  VTS_BSTR)

//或者

//ON_EVENT(CCometWebBrowser,  AFX_IDW_PANE_FIRST,273,NewWindow3,VTS_PDISPATCH  VTS_PBOOL  VTS_I4  VTS_BSTR  VTS_BSTR) 

//273 就是DISPID_NEWWINDOW3 
END_EVENTSINK_MAP()


void CHtmlInExeView::NewWindow3(IDispatch  **ppDisp, 
  VARIANT_BOOL  *Cancel, 
  DWORD  dwFlags, 
  BSTR  bstrUrlContext, 
  BSTR  bstrUrl 
  ) 
{  
MessageBox(_T("拦截测试"),_T("提示"),MB_OK);
}

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 7084

关于蓝韵网络 

蓝韵网络是杭州网骥文化艺术策划有限公司的一个品牌,注册于2009年8月,是一家大学生创业公司。早在大学,就已组建了JPG技术团(JPG学生技术团队|JPG技术团队),服务于院校和企业。

蓝韵网络的服务

蓝韵网络专注于网站建设;成立四年来为300多家企业提供高性价比网站建设服务

查看更多...

分类:智慧人生 | 固定链接 | 评论: 0 | 查看次数: 7922

go下载

 http://code.google.com/p/go/downloads/list

查看更多...

分类:下载专区 | 固定链接 | 评论: 0 | 查看次数: 4395

人人都能用的10条网站易用性技巧

嗯,WebAIM团队博客的一篇关于网站易用性的文章,比较基础,简单翻译一下:

1. 给你的logo添加替代文本

这样有两个好处:屏幕阅读器能识别logo图片代表的含义,图片未加载到时,也能告诉非视障用户那里是你的logo。

几种方法:

1  
<img src="logo.png" alt="前端界">

或者,你用背景图来实现logo的话,也可以添加title属性来实现:

1  2  
<span title="前端界"></span>  </code>

查看更多...

分类:智慧人生 | 固定链接 | 评论: 0 | 查看次数: 4848

GCC 命令行详解

 1。gcc包含的c/c++编译器
gcc,cc,c++,g++,gcc和cc是一样的,c++和g++是一样的,(没有看太明白前面这半句是什
么意思:))一般c程序就用gcc编译,c++程序就用g++编译

2。gcc的基本用法
gcc test.c这样将编译出一个名为a.out的程序
gcc test.c -o test这样将编译出一个名为test的程序,-o参数用来指定生成程序的名

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 6645

下载chrome代码并编译

做好发掘工作的第一步就是获取代码并能成功编译调试,我这里只谈在windows环境下的编译,我的操作系统是Windows Server 2008 企业版,其他windows 环境应该没有什么大的区别。其实我写此文的目的可能更多的是加深印象,做个备忘,因为官方描述的编译过程已经比较清楚了,如果你对官方的文档描述更感兴趣,请参考这里

查看更多...

分类:c/c++ | 固定链接 | 评论: 0 | 查看次数: 9126

sed命令详解

 sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。

sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示。处理完输入文件的最后一行后,sed便结束运行。sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 6484

Linux环境变量配置文件

查看系统当前的环境变量:env
查看变量的值:echo $变量名
   设置环境变量: export 变量名=”Hello!”
    清除环境变量:unset $变量名
   常用预定义环境变量:
PATH 当前用户的主目录
HOME 当前用户的可执行文件搜索路径
LANG 系统使用的默认语言
SHELL 系统默认的shell。
 
环境变量设置文件
 
   全局环境变量,对所有Linux用户有效,设置文件:/etc/profile、/etc/bashrc(bash,ksh对应的文件为/etc/kshrc)
   用户环境变量,只对当前用户有效,设置文件为当前用户主目录(~)下的:.profile、.bash_profile、.bashrc(bash,ksh对应的文件为.ksh_profile、.kshrc)
登录shell:作为Linux用户登录到Linux操作系统,或者用su - username切换到其他用户,都为登录shell,环境变量也同时切换。
非登录shell,用su  username,即为非登录shell,环境变量仍为当前用户的环境变量。
    根据是否为登录shell,读取环境变量配置文件是不同的。
登录shell读取环境变量顺序:
/etc/profile —> /etc/profile.d/*.sh —> ~/.bash_profile —> ~/.bashrc —> /etc/bashrc
   非登录shell读取环境变量顺序:
~/.bashrc —> /etc/bashrc —> /etc/profile.d/*.sh 
 
 
环境变量更改后,在用户下次登陆时生效,如果想立刻生效,则可执行下面的语句:source .bash_profile 或者 . .bash_profile

查看更多...

分类:linux教程 | 固定链接 | 评论: 0 | 查看次数: 5693

Js异步协作

文档  http://html5ify.com/eventproxy/api.html

先上上段代码

var EventProxy = require("./eventproxy');
 var proxy = new EventProxy();
 var add= function (v1, v2, v3){
       console.log(v1+v2+v3+'');
    };
proxy.assign("v1", "v2", "v3", add);
    clinet1.get("key1", function (err, data) {
        //do something
        proxy.trigger("v1", data);
    });
   clinet2.get("data", function (err, data) {
        //do something
        proxy.trigger("v2", data);
    });
    clinet3.get("l10n", function (err, data) {
        //do something
        proxy.trigger("v3", data);
    });

在JS的编程中经常会有这样的需要: 需要生成一个页面,数据是ajax的,模板也是ajax获取,通常的做法是先发一个ajax请求取数据,等永请求完成再发一个ajax请求取模板,最后再来渲染。

实际上请求数据和请求模板这两个请求同时发起,等两个都返回的时候就可以渲染了。这个eventproxy就是为方便这样做事而写的一个东西。

查看更多...

Tags: js 异步

分类:web前端 | 固定链接 | 评论: 0 | 查看次数: 5798

javascript 函数嵌套调用的效率测试

Javascript中函数嵌套定义给我们开发带来了很多便利,但是他的效率怎么样呢? 我做了一个简单的测试。

//test

function func1(a, b) {
	return (function(a, b){
		return (function(a, b){return a+b})();
	})();
}

function func2(a, b)
{
	var nest1 = function(a, b)
	{
		var nest11 = function(){
			return a+b;
		}
		return nest11(a+b);
	}
	return nest1(a,b);
}


function func3(a, b) {
	function nest1(a, b){
		function nest11(a, b){
			return a+b;
		}
		return nest11(a, b);
	}
	
	return nest1(a, b);
}

function nest44(a, b){
	return a+b;
}

function nest4(a, b){
	return nest44(a, b);
}

function func4(a, b) {
	return nest4(a, b);
}

console.time("start1");
for(var i=0; i<1000000; i++) {
	func1(1,1);
}
console.timeEnd("start1");

console.time("start2");
for(var i=0; i<1000000; i++) {
	func2(1,1);
}
console.timeEnd("start2");

console.time("start3");
for(var i=0; i<1000000; i++) {
	func3(1,1);
}
console.timeEnd("start3");

console.time("start4");
for(var i=0; i<1000000; i++) {
	func4(1,1);
}
console.timeEnd("start4");

本代码用nodejs看执行,得到如下的结果:

# node test2.js 

start1: 190ms

查看更多...

分类:web前端 | 固定链接 | 评论: 0 | 查看次数: 5328

npm常用命令

 npm install <name>安装nodejs的依赖包

例如npm install express 就会默认安装express的最新版本,也可以通过在后面加版本号的方式安装指定版本,如npm install express@3.0.6

npm install <name> -g  将包安装到全局环境中

但是代码中,直接通过require()的方式是没有办法调用全局安装的包的。全局的安装是供命令行使用的,就好像全局安装了vmarket后,就可以在命令行中直接运行vm命令

npm install <name> --save  安装的同时,将信息写入package.json中

项目路径中如果有package.json文件时,直接使用npm install方法就可以根据dependencies配置安装所有的依赖包

这样代码提交到github时,就不用提交node_modules这个文件夹了。

npm init  会引导你创建一个package.json文件,包括名称、版本、作者这些信息等

npm remove <name>移除

npm update <name>更新

npm ls 列出当前安装的了所有包

npm root 查看当前的安装路径

npm root -g  查看全局的包的安装路径

npm help  帮助,如果要单独查看install命令的帮助,可以使用的npm help install

https://npmjs.org/doc

查看更多...

分类:web前端 | 固定链接 | 评论: 0 | 查看次数: 6014

Sublime Text2.0.2破解

直接输入注册码就可以了

 

----- BEGIN LICENSE -----

Andrew Weber

查看更多...

分类:破解调试 | 固定链接 | 评论: 0 | 查看次数: 5778

PHPCMS乱解读之 pc标签的实现

标 题: PHPCMS乱解读之 pc标签的实现
作 者: web开发网[http://www.zeroplace.cn]
时 间: 2013/07/31 12:15:00
链 接: http://www.zeroplace.cn/article.asp?id=855
说 明: 转载请保留本段文字 

最近电脑硬件出了点问题,现正在修理中呀,敢问各位有没有会修主板那种电路的...

 前面在写 PHPCMSV9 乱解读 之 PHPCMS V9的MVC 的时候有写到phpcms模板解析引擎的部分,但只是解释了一下模板是怎么编译的,没有具体讲其中的每个标签的实现细节。实际上多数的标签都很常规,并没有什么好说的。这里我来写写PC这个标签的实现方法。

 首先还是看到libs/classes/template_cache.class.php这个文件中template_parse这个方法,发现里面有一句代码是用来编译pc这个标签的

$str = preg_replace("/\{pc:(\w+)\s+([^}]+)\}/ie", "self::pc_tag("$1','$2', '$0')", $str);

查看更多...

Tags: phpcms

分类:PHPCMS | 固定链接 | 评论: 0 | 查看次数: 9901

PHPCMS乱解读之phpcmsv9中的缓存

 在 PHPCMSV9 乱解读 之 PHPCMS V9的MVC 这篇文章中有看到一组global.func.php中的函数,但是那时候没有细讲。

/**
 * 写入缓存,默认为文件缓存,不加载缓存配置。
 * @param $name 缓存名称
 * @param $data 缓存数据
 * @param $filepath 数据路径(模块名称) caches/cache_$filepath/
 * @param $type 缓存类型[file,memcache,apc]
 * @param $config 配置名称
 * @param $timeout 过期时间
 */
function setcache($name, $data, $filepath="', $type='file', $config='', $timeout=0) {
	pc_base::load_sys_class('cache_factory','',0);
	if($config) {
		$cacheconfig = pc_base::load_config('cache');
		$cache = cache_factory::get_instance($cacheconfig)->get_cache($config);
	} else {
		$cache = cache_factory::get_instance()->get_cache($type);
	}

	return $cache->set($name, $data, $timeout, '', $filepath);
}

/**
 * 读取缓存,默认为文件缓存,不加载缓存配置。
 * @param string $name 缓存名称
 * @param $filepath 数据路径(模块名称) caches/cache_$filepath/
 * @param string $config 配置名称
 */
function getcache($name, $filepath='', $type='file', $config='') {
	pc_base::load_sys_class('cache_factory','',0);
	if($config) {
		$cacheconfig = pc_base::load_config('cache');
		$cache = cache_factory::get_instance($cacheconfig)->get_cache($config);
	} else {
		$cache = cache_factory::get_instance()->get_cache($type);
	}
	return $cache->get($name, '', '', $filepath);
}

 

查看更多...

Tags: v9 phpcms 缓存

分类:PHPCMS | 固定链接 | 评论: 0 | 查看次数: 14803

PHPCMSV9 乱解读 之 PHPCMS V9的MVC

现在的程序设计基本上都讲求MVC,数据与模板分离,单一入口。

这篇文章准先写一写PHPCMSV9的运行和它的MVC是怎么实现的!
 
(习惯问题我喜欢将所有的方法称之为函数,所以下面我如果提到函数的话很可能就是某个类的一个方法)
 

查看更多...

Tags: phpcms v9 php mvc

分类:PHPCMS | 固定链接 | 评论: 0 | 查看次数: 11587

nginx location 不详解

文档地址 

http://nginx.org/en/docs/http/ngx_http_core_module.html#location

 

语法规则: location [=|~|~*|^~] /uri/ { … }

查看更多...

分类:WEB服务器 | 固定链接 | 评论: 0 | 查看次数: 5830

针对JS对象数组的Array排序实现

 这里只实现了冒泡排序和快速排序,一般来说也够用了

 点击下载此文件

/*
 * 对Array进行排序
 */
 
var CMPMETHOD = {
  btTimeCmp: function(a, b) {
    a=a.replace("天", "");
    b=b.replace("天", "");
    var as = a.split("年");
    var bs = b.split("年"); 

    var ayear = as.length > 1 ? as[0] : 0;
    var aday  = as.length > 1 ? as[1] : parseInt(as[0]);

    var byear = bs.length > 1 ? bs[0] : 0;
    var bday  = bs.length > 1 ? bs[1] : parseInt(bs[0]);

    var va = ayear * 365 + parseInt(aday);
    var vb = byear * 365 + parseInt(bday);
    
    if (va > vb ) return 1;
    if (va < vb ) return -1;
    if (va == vb) return 0;
  },
  numberCmp: function(a, b) {
    a = parseFloat(a);
    b = parseFloat(b);
    return CMPMETHOD.commonCmp(a, b);
  },
  commonCmp: function(a, b){
    if (a < b) return -1;
    if (a == b) return 0;
    if (a > b) return 1;
  }
}

Array.prototype.swap = function(i, j) {
  var temp = this[i];
  this[i]  = this[j];
  this[j]  = temp;
}

Array.prototype.quickSort = function() {
  var s=null, e=null, k=null, cmp=CMPMETHOD.commonCmp;
  if (arguments.length == 1) {
    s = null; e = null; k =arguments[0];
  }

  if (arguments.length == 2 ) {
    s = arguments[0];
    e = arguments[1];
  }

  if (arguments.length == 3) {
    s = arguments[0];
    e = arguments[1];
    k = arguments[2];
  }

  if (arguments.length == 4) {
    s = arguments[0];
    e = arguments[1];
    k = arguments[2];
    cmp = arguments[3];
  }

  if (s == null ) s = 0;
  if (e == null ) e = this.length-1;
  if (s >= e) return ;
  var x = s;    //基准索引
  var i, j;

  i = s; j = e;
  while(j > i) {
    for(; j>i; j--) {
      if (cmp(this[j][k], this[x][k]) < 0) {
        this.swap(j, x);
        x = j;
        break;
      }
    }

    for(; i

查看更多...

分类:网络安全 | 固定链接 | 评论: 0 | 查看次数: 7339