Monthly Archives: April 2013

© 2013 . All rights reserved.

lua与c++交互全解析

作者:邓冶晶出处:http://www.cnblogs.com/wellbye/本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名邓冶晶(包含链接).     最近经常见有人在群上问有关lua在c/c++中嵌入使用的问题,但很多问题本身问得就莫名所以,很可能是对一些基本概念还未正确理解就急于使用,遇到难处也没有认真思考问题的本质是什么,自然会问出一些叫人啼笑皆非、欲答无词的问题。正好这段时间赋闲在家,希望能把几年来对lua及c++的理解及经验总结一下,为同样喜欢这两样语言的同好做一个入门介绍。     从以下几个方面逐一解析这个问题:    1、lua的数据模型    2、跨语言交互的实质    3、c++对象模型    4、核心1:在lua中使用c++对象    5、核心2:高效地导出c++对象     一、lua的数据模型。lua是一门非常简单易用的语言,简单就简单在它的数据类型是“封闭”的(相对于python的开放而言)。它所有的类型都由一个TValue表示: typedef union { GCObject *gc;void *p; lua_Number n;int b;} Value;/*** Tagged Values*/#define TValuefields Value value; int tttypedef struct … Continue reading

© 2013 . All rights reserved.

[图+视频]键盘鼠标2合1 “左右互搏”的Combimouse_cnBeta 硬件新闻_cnBeta.COM

尽管,将键盘拆分成两个不同的区域,或许会有助于更舒适地打字。但对于某些需要用鼠标”点来点去”的打字人员来说,伸手去抓”另一个”鼠标也是见麻烦事。于是,Combimouse这款分体式键盘便诞生了。更为惊奇的是,它的右半部分,也可以作为一个光学鼠标!早在1999年,Ari Zagnoev便拥有了首个与之相关的专利。 经历了无数个原型(包括卫奇塔州立大学在2003年评估过的那一款)之后,该产品终于在今天定了型。现在,Zagnoev和他的团队(负责业务发展和账目的Simon herron和软件工程师Roger Larcome),正在为上市前的最后一阶段而冲刺着。 最新的原型,重量减少到了74克(2.6盎司),按键的整体高度也削减到了14mm。不过其目前还有没推出一个”左撇子版本”的计划。 该项目的筹资窗口将于5月20日关闭,且其首轮目标为2万美元。支付10美元的押金,就能换得11美元的最终产品折扣(80美元),而其区域零售价则为100美元。 [来源: Combimouse , Indiegogo ] [编译自: gizmag ] from [图+视频]键盘鼠标2合1 “左右互搏”的Combimouse_cnBeta 硬件新闻_cnBeta.COM http://www.cnbeta.com/articles/235695.htm some even going to school officials in fear of their safety woolrich arctic parka Kevin Carter Of Baochuan Capital On … Continue reading

© 2013 . All rights reserved.

C编译: makefile基础

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!   在编译一个大型项目的时候,往往有很多目标文件、库文件、头文件以及最终的可执行文件。不同的文件之间存在依赖关系(dependency)。比如当我们使用下面命令编译时: $gcc -c -o test.o test.c $gcc -o helloworld test.o 可执行文件helloworld依赖于test.o进行编译的,而test.o依赖于test.c。  依赖关系 在我们编译一个大型项目时,我们往往要很多次的调用编译器,来根据依赖关系,逐步编译整个项目。这样的方式是自下而上的,即先编译下游文件,再编译上游文件。   UNIX系统下的make工具用于自动记录和处理文件之间的依赖关系。我们不用输入大量的”gcc”命令,而只需调用make就可以完成整个编译过程。所有的依赖关系都记录在makefile文本文件中。我们只需要make helloworld,make会根据依赖关系,自上而下的找到编译该文件所需的所有依赖关系,最后再自下而上的编译。 (make有多个版本,本文将基于GNU make。make会自动搜索当前目录下的makefile, Makefile或者GNUmakefile)   依赖   基本概念 我们使用一个示例C语言文件: #include <stdio.h>/* * By Vamei * test.c for makefile demo*/int main() { … Continue reading

© 2013 . All rights reserved.

【爱稀奇的房交会】巴黎超迷你小公寓,只有5平米大小!

之前,爱稀奇介绍了重庆大学建筑城规学院的7平米蜗居设计,现在,又一款极小却得到了极佳设计的公寓被披露,这就是巴黎的5平米公寓: “巴黎这间由Julie Nabucet Architectures打造的5平米小公寓,有客厅、有吧台……以高起的平台作为厨房和浴室,通过高度差来区分用餐区和客厅,而下方的空间则安装了抽拉式的床,露出的部分兼作沙发——等于是把三个空间叠加在了一个平面上,绝不浪费任何一点小空间。同时,在家具的处理上,只使用了简单的红黑白色系,展现出俐落的都会风。” ——好吧,5个平米的大小,对某些大户而言,这仅仅就是厕所而已。但是设计师却能让它变成整个公寓,确实强大。 设计:Julie Nabucet Architectures(公司主页:julienabucet.com) 更多——从1平米到39平米: 除了今天的这个5平米公寓方案,爱稀奇还曾经介绍过多个小空间利用的绝妙设计,从小到大,包括: 1平米——1平米房屋:One SQM house 7平米——7平米的蜗居,也可以很强大 20平米——20平米的“大公寓” 39平米——39平米的超级变形公寓 [ via decomyplace.com ] 亲爱的,这些东西也会对你胃口: 【爱稀奇的房交会】我的家,在矩阵中 【爱稀奇的房交会】看了这个,我都信教了…… 【爱稀奇的房交会】39平米的超级变形公寓 【爱稀奇的房交会】一平米房屋:One SQM house 【爱稀奇的房交会】涂鸦房屋 来自无觅网络的相关文章: 巴黎租房记 (@luo) 巴黎巧克力雕塑創作狂人 《Patrick Roger 》 (@mydesy) 法国40平公寓设计 (@poboo) 簡潔有型的品味兩房小公寓 (@mydesy) … Continue reading

© 2013 . All rights reserved.

墓地里的活人

菲律宾墓地城在菲律宾马尼拉北部,有座巨大的墓地,里面除了死人以外,还住着上万的活人~因为这些人很穷,只能跟死人住在一起,搞得这个墓地平时很热闹~不过,墓地也有墓地的好处,这里比贫民窟安全,没有暴力和黑社会,而且住所都是免费的~via:教授 如果您的阅读器看不到图片,请订阅 http://feed.luobo8.com/ 即可显示图片。 部分文章附有精彩小视频,如果您的阅读器无法观看视频,请移步原文链接: http://luo.bo/38857/ 本文小编:梁萧 标题: 墓地里的活人 发布时间:2013/04/30, 16:59 萝卜网 Copyright © 2010 – 2012 分享国内外精彩网事。 更多精彩欢迎您订阅 http://feed.luobo8.com/,欢迎网友投稿、推荐文章。 您可能对以下文章感兴趣: 广西天峨水库移民举债买墓地:我们死不起了 地球上被访问次数最多的墓地们 谈谈墓地,谈谈生命 很不幸,墓地一直是参照着别墅定价,所以很贵 明星的特色墓地 来自无觅网络的相关文章: 史上最坑爹的提问,你给父母买墓地了吗? (@fun4hi) 揭秘10大明星特色墓地~~ (@fun4hi) 史上最坑爹的问题!!!你买墓地了吗? (@jdxi) 大便活人,这个魔术真不错~ (@fun4hi) 惊险刺激的锯活人魔术 (@zhishi9) 无觅 from 萝卜网 … Continue reading

© 2013 . All rights reserved.

迪士尼童年回忆:反派们的惊艳逆袭!

  你还记得童年的他们吗?这些大反派人物角色你叫的出名字的还有几个?这些图片出自于哪部动画你还记得吗?现在的他们被人演绎出了另外一番风味了哦!一名网络画手将这些个性鲜明古怪的迪士尼动画反派名角以一种现代、性感的方式重新诠释了一遍,其形象反转感令人不禁大呼神奇。来,我们一起回味下我们童年的迪士尼乐园吧!        【1】《101忠狗》中的库伊拉·德维尔(Cruella De Vil)         【2】《钟楼怪人》中的克劳德·孚罗洛(Claude Frollo)          【3】《爱丽丝梦游仙境》中的红心皇后(Queen of Hearts)         【4】《公主与青蛙》中的霍博士(Dr. Facilier)         【5】《大力士》中的冥王凯帝斯(Hades)         【6】《阿拉丁》中的贾方(Jafar)       … Continue reading

© 2013 . All rights reserved.

个人使用VIM的一些总结

这两天闲着都在捣鼓VIM了,感觉有点不务正业了,不得不说VIM里面要学习的东西太多了,学习曲线无比陡峭。知识点多了有点乱,特地发个博梳理一下,都是我自己在学习过程中积累的一些,可能有点杂,凑合着看吧,轻拍,欢迎提问一起探讨。   一、vim介绍与常用命令   这个就不说了吧,自行google,贴一张VI/VIM键盘图,要学习的拿去当桌面吧,哈哈。        二、vim各版本区别   ubuntu下预装的版本是vim.tiny,这个更靠近纯vi了,不能使用小键盘和方向键,在编辑模式下,移动光标会变成A B C D等字符并换行。   解决方法两个;     1.vim缺省是vi兼容模式,设置成不兼容模式就好了:      :set nocp     2.安装完整VIM     VIM其他版本:vim-gnome安装的vim依赖于gnome的某些东西的。vim-gtk 依赖于gtk的某些东西。vim-nox这个不知道,ubuntu官网也没说明。还有一个vim-athena,据说是界面很华丽,没用过不评论。具体看http://packages.ubuntu.com/oneiric/vim     三、vim缓冲区   缓冲区(Buffer)是一块内存区域,里面存储着正在编辑的文件。如果没有把缓冲区里的文件存盘,那么原始文件不会被更改。   :buffers  命令将会列出当前编辑中所有的缓冲区状态。在这个状态列表中,前面的数字是缓冲区的数字标记,第二个标记就是缓冲区当前的状态,紧接着是与缓冲区所关联的文件名。有如下几种状态:   - (非活动的缓冲区)  a (激活缓冲区)  h (隐藏的缓冲区)  % (当前的缓冲区)  # (交换缓冲区)  = (只读缓冲区)  + (已经更改的缓冲区) 其他命令 :buffers 列示缓冲区状态 :buffer 编辑指定缓冲区 :ball(ba默认水平分屏) 编辑所有缓冲区 :bnext(bn) … Continue reading

© 2013 . All rights reserved.

Windows 根据进程名杀死进程 kill

文件描述:用于强制结束指定进程的工具软件 编译环境:win7 x64 VC2005 sp1 编译 下载地址:http://files.cnblogs.com/vk83/kill.rar   程序说明:   由于使用一些P2P在线观看影视节目的软件,还有类似于迅雷这样的下载软件,经常在程序退出后,并不会完全结束其所依赖的后台进程,这些进程在一段时间内可能还会大量使用网络带宽,这就造成了退出软件后,网络依然被其影响,内存被其占用等影响我们正常使用和违背我们个人意愿的情况。所以我自己写了这个软件,它的实现方式是调用了Windows 系统的接口,即Win32 API实现的。主要使用了如:EnumProcesses()、OpenProcess()、EnumProcessModules()、TerminateProcess()等函数实现了对指定的进程进行终止的功能。这个程序可以被其他程序调用,所以我没有写成基于窗口的GUI应用程序。今后可以被一个GUI的面板去调用和扩展其用途。当然要终止进程其实方法很多,我这里只是用我最熟悉的C/C++去实现这样的功能。   使用方法:   在命令行提示符下输入:kill <进程名> 即可,进程名区别大小写,如:   C:\>kill  BaiduP2PService.exe 回车后 就可以 强行终止百度影音的后台传输进程   C:\>kill ThunderPlatform.exe 回车后 就可以 强行终止迅雷下载的后台进程   因为有些软件不是很自觉,如风行和PPS这类软件,经常是主程序结束后,还留一个进程在使用网络。   如果它们自觉的话,我就省心多了。我就是为了方便我母亲这样对任务栏管理器不懂的长辈使用电脑时,可以不必去了解哪些进程不该有,哪些进程该有,而被一些不自觉的程序占用网络时却不自知,导致电脑使用感不佳而编写的。在实际使用中,我通过一个在后台运行的监控,调用kill去杀死指定的进程,我让妈妈在感到聊QQ语音和视频通话不流畅时,或者是退出一些P2P视频软件后,通过很简单的操作就可以把那些不自觉的进程统统杀掉。而不必去了解进程和进程管理这样的问题。 本文链接 from 博客园_首页 http://www.cnblogs.com/vk83/archive/2013/04/30/3051752.html early my child years analyses student about teesside … Continue reading

© 2013 . All rights reserved.

聊聊Memcached的应用

是一缓存,能够Set, Get value,哈哈,普通用法如下: public User GetUser(int userId){ UserInfo user = cacheService.Get(“UserInfo:” + userId) as UserInfo;//cacheService是自定义的接口,具体的memcache实现代码被隔离了if (user == null) { user = dao.GetUser(userId); cacheService.Set(“UserInfo:” + userId, user); }return user;} 在真正使用Memcached之前,需要先初始化它,如下: string[] serverlist = { “192.168.1.11:11211″, “192.168.1.12:11211″, “192.168.1.13:11211″ };//服务器可以是多个 //初始化池 SockIOPool pool … Continue reading

© 2013 . All rights reserved.

将Sublime Text 2打造成一个好用的IDE

                  将Sublime Text 2打造成一个好用的IDE   说起编辑器,可能大部分人要推荐的是Vim和Emacs,本人用过Vim,功能确实强大,但是不是很习惯,之前一直有朋友推荐SUblime Text 2这款编辑器,然后这段时间就试了一下,就深深地喜欢上这款编辑器了,对于类似的编辑器,我用过notepad2、notepad++、Editplus、UltraEdit、Vim、TextPad,都没有觉得哪一款编辑器用得非常上手,直到遇到Sublime Text 2,之前写Python脚本时,也一直在苦苦寻找一款好用的IDE,用过WingIDE、Ulipad、Pycharm、Eclipse+Pydev、PyScrypter,没有哪款非常中意的,直到遇到了Sublime Text 2,今天就来讲一下如何将Sublime Text 2打造成一款好用的IDE,虽然它只是一款编辑器,但是它有丰富的扩展插件,足以让我们把它变成好用的IDE。 一.下载和安装   Sublime Text2是一款开源的软件,不需要注册即可使用(虽然没有注册会有弹窗,但是基本不影响使用)。   下载地址:http://www.sublimetext.com/2,请自行根据系统版本进行下载。下载好之后直接安装即可。   如果有朋友不习惯其英文界面,可以使用汉化包进行汉化,我把汉化包上传到博客空间了,需要的朋友可以进行下载。   汉化包地址:http://files.cnblogs.com/dolphin0520/sublime_text_v2_%E6%B1%89%E5%8C%96.rar   汉化方法:   1.运行sublime text 2;   2.选择“preferences”—>“Browse packages”;   3.找到文件夹“Default”,将解压得到的文件复制到“Default”文件夹下覆盖即可。   下面是汉化后的运行界面:    二.一些常用的设置和快捷键   1.字体、主题风格等设置   当需要更改主题时,直接可以通过“preferences”—>“颜色主题”来设置:      主界面上只能改变字体的大小:      若需要改变字体和字体大小,可以先”preferences“—>”Browse Packages“,找到”Default“文件夹,然后找到Preferences.sublime-settings这个文件夹,用Sublime Text 2打开这个文件,这个文件保存了一些常用的设置,   比如字体、主题风格、是否显示行号、智能提示延迟时间等,可以根据自己的需要自行设置。   2.打开(关闭)侧边栏、右边缩略图等常用面板   默认情况下Sublime … Continue reading

© 2013 . All rights reserved.

一、Socket编程(连接、发送消息)(Tcp、Udp)

本篇文章主要实现Socket在Tcp\Udp协议下相互通讯的方式。(服务器端与客户端的通讯)   1.基于Tcp协议的Socket通讯类似于B/S架构,面向连接,但不同的是服务器端可以向客户端主动推送消息。   使用Tcp协议通讯需要具备以下几个条件:     (1).建立一个套接字(Socket)     (2).绑定服务器端IP地址及端口号–服务器端     (3).利用Listen()方法开启监听–服务器端     (4).利用Accept()方法尝试与客户端建立一个连接–服务器端     (5).利用Connect()方法与服务器建立连接–客户端     (5).利用Send()方法向建立连接的主机发送消息     (6).利用Recive()方法接受来自建立连接的主机的消息(可靠连接)          2.基于Udp协议是无连接模式通讯,占用资源少,响应速度快,延时低。至于可靠性,可通过应用层的控制来满足。(不可靠连接)     (1).建立一个套接字(Socket)     (2).绑定服务器端IP地址及端口号–服务器端     (3).通过SendTo()方法向指定主机发送消息(需提供主机IP地址及端口)     (4).通过ReciveFrom()方法接收指定主机发送的消息(需提供主机IP地址及端口)          上代码:由于个人代码风格,习惯性将两种方式写在一起,让用户主动选择Tcp\Udp协议通讯 服务器端:    using System;using System.Collections.Generic;using System.Text;#region 命名空间using System.Net;using System.Net.Sockets;using System.Threading;#endregionnamespace SocketServerConsole{class Program {#region 控制台主函数/// <summary>/// 控制台主函数/// </summary>/// <param name=”args”></param>static void Main(string[] args) … Continue reading

© 2013 . All rights reserved.

gkENGINE HDR流程简析

个人比较喜欢看图说话。 这里简单的用图和文字说明一下gkENGINE HDR渲染流程中的关键步骤。如果要一步一步的解析,光是解释RT的创建,释放,纹理格式的选用。可能就需要一整天。如果再设计到框架搭建,shader的实际处理,可能几天都不够。所以这里就不详细进行代码层面的讲解了。 不过这里列举几个非常关键的地方: 线性空间的重要性:  保持光照运算在线性空间是十分重要的。只有在线性空间进行运算,才能保证光照的结果真实可信。 浮点纹理:HDR的运算和RT一定使用浮点纹理,8位的纹理不足以表达如此精准的明暗细节。 纹理尺寸:纹理尺寸的选择要仔细斟酌。浮点纹理对显卡带宽的占用非常巨大,在保证精准的前提下,能省就省。 这个流程供图形好友们参考,权当抛砖引玉了!欢迎交流!   本文链接 from 博客园_首页 http://www.cnblogs.com/gameknife/archive/2013/04/26/3046110.html sometimes as high as woolrich arctic parka Day in the Life of a Menswear Designer oakley surge stainless- woolrich outletHublot Classic Fusion Limited Edition Watch for … Continue reading