- 博客(37)
- 资源 (5)
- 收藏
- 关注
原创 不改代码不链接库调用c接口
其实就是用dlopen之类的解析符号来调用。但是其实我们可以做得更多,因为这些动作都是比较机械话的。于是我搞了个小项目 https://github.com/wang-bin/dllapi为什么不用链接? 1. 开发环境中可能没有那个库,但是希望能在有这个库的运行环境上能工作。2. 不依赖运行时库的版本为什么不手工写解析符号代码? 比如xbmc是为每个库写个类,然后
2014-03-23 16:41:05 2490
原创 新浪微博接口自动生成+Qt封装
代码:https://github.com/wang-bin/qweiboapi一年多前写的,本来想写个Qt客户端的(html5的写过比较完整的),但是微博的接口一个个打开网页找并写下来太麻烦了,后来主要精力花在了api自动生成工具上(bash写的,尼玛bash还是很强大的),自动生成工具写好了又懒得继续写客户端了。。。里面提供了一个登录并获得最新微博的例子。api自动生成见
2014-03-23 16:07:50 3224 1
原创 教你如何在word中像LaTex那样打公式
pdf文档下载(推荐,可以看到公式):http://download.csdn.net/detail/ibingow/5089366 记得很久以前在word里打数学公式很痛苦,要用鼠标点啊点,效率奇低,包括像MathType那些工具。后来到了office 2007公式情况就不一样了,编辑器有了巨大的改进,适合我们喜欢用键盘的同学了。几乎所有的数学符号都对应一条命令,而且跟LaTex的
2013-02-26 14:30:59 102844 14
原创 提取了VS2012的编译器
编译环境下载:http://download.csdn.net/detail/ibingow/5080903或者http://qtbuild.googlecode.com/files/vs2012-x86.7zvs2012 redist: http://www.microsoft.com/en-us/download/details.aspx?id=30679
2013-02-22 23:09:53 11374 8
原创 在Qt Widget中使用QPainter之外的引擎进行绘图
最近在给自己的播放器(https://github.com/wang-bin/QtAV)加写非QPainter的渲染方式,解决了一些以前没碰到过的问题。 在QWidget中使用其他方式绘图,比如direct2d,gdi等(我刚学的) 1. 重载paintEvent,里面加入自己的绘图代码。这个大家都想得到 2. 重载QWidget::paintEngine() 返回0
2013-02-22 22:53:02 11843 1
原创 调用FFmpeg的视频压缩批处理脚本
尼玛好久没来写博客了,还是贴个刚刚写的脚本吧。 脚本式用windows下的批处理写的,由于批处理只懂一点点,这里贴下可以作为笔记。脚本是给老师写的,所以要容易上手,越傻瓜越好 使用方法:复制代码到convert.bat,拖一个视频到这个convert.bat就会帮你转换这个视频,或者拖一个文件夹到那个批处理,会帮你转换文件夹下不包括子目录的所有视频,带有一些简单的统计功能,比如
2013-02-19 21:52:45 10289
原创 js调用gecko c++代码
在移植gecko的时候发现一些问题,比如gecko连alert对话框这种基本的控件都没有默认实现,包括b2g,在firefox os(那个ui叫gaia)中是纯粹地用html实现的。起初觉得把gaia的的代码,拷过来点就是了,后来发现gaia写得有点复杂,会产生很多依赖,还不如直接用native的控件来实现。做法是参考android的firefox,用js处理部分逻辑,gui相关部分用java,就
2012-11-16 17:55:28 3817 2
原创 Qxt中的d-pointer技术及改进
Qxt是一个Qt的扩展库。其中也用到了d-pointer技术,但是与Qt的区别很大,比起Qt有点不足之处。这里我先简单看下它的实现,然后吸取Qt中的优点进行改进。(最新代码在 https://github.com/wang-bin/d-pointer )之前写过一篇关于d-pointer的文章 http://blog.csdn.net/ibingow/article/details/75221
2012-11-11 20:36:00 4543 1
原创 gecko中的js扩展
1 创建js对象对应的idl文件假设要扩展一个hiGecko对象,那么先创建一个idl文件,命名为nsIDOMHiGecko.idl,它的内容如下#include "nsISupports.idl" [scriptable, uuid(9285aaa6-19fd-4fdb-8621-916f856c024f)]interface nsIDOMHiGecko : nsISupports
2012-11-09 19:02:06 3708
原创 基于FFmpeg和Qt的播放器 QtAV库
参与项目开发: https://github.com/wang-bin/QtAV下载编译好的文件等:https://sourceforge.net/projects/qtavwin下编译好的可执行文件及编译所需的文件在这:https://sourceforge.net/projects/qtavwin下编译要用到的库如ffmpeg,portaudio可以在https://sourcef
2012-11-03 23:09:06 31442 89
原创 结合linux工具安装黑苹果小记
对于普通玩家来说,成功装上要靠 rp,靠耐心。安装不可能很顺利,无法进安装界面很正常,甚至安装时死机也不奇怪。 关于Chameleon 现在的变色龙有启动光盘,方便很多,于是可以在grub(2)或u盘上的grub加一个启动项就行(个人比较喜欢放u盘上,一个u盘专门用来装各种系统)chainloader /boot/Chameleon.isoboot 这样
2012-10-29 18:36:39 7953
原创 matlab 里定义全局变量,常量
有时候一个常数在很多文件里都要用到,但是写数值既不直观又麻烦,数值谁记得住啊。在C/C++里可以用宏定义或者全局常量,matlab也有方法实现。1. oopmatlab R2008a开始支持面向对象了。在类定义中可以定义些类常属性,就是可以定义常量,如classdef MyConstants properties (Constant = true) SECO
2012-09-26 14:48:39 44741
原创 rpath添加依赖库搜索路径
windows 下一个程序的dll搜索路径首先是程序目录,然后是一些系统目录。linux 下的可以通过设置 LD_LIBRARY_PATH 等方法来添加搜索路径,但是这些路径是定死的,如果要实现程序目录,就要使用链接时的rpath选项。rpath 适用于 elf 文件,不适用 pe。Linux 上动态库搜索顺序:Unless loading object has RUNPATH:
2012-08-19 20:21:07 42023 2
原创 FBReader代码结构(1)--ui插件系统
关于 FBReader 主页: http://www.fbreader.org/ FBReader 是很优秀的跨平台电子书阅读器,它原为 Sharp Zaurus 而开发,后来可在 Nokia 770/N800、Motorola EZX系列、Maemo、Linux、Windows 、android等上面运行(iOS上也有移植,但是部分代码还没放出貌似)。FBReader 支持
2012-08-17 00:44:10 6503
原创 libexif的使用
wiki上有EXIF的介绍,不抄了 http://zh.wikipedia.org/wiki/EXIF分析exif数据的c库有libexif, c++库有exiv2。exiv2比libexif支持更多格式,最近更新也比较活跃。这里简单介绍下如何使用libexiflibexif主要的数据结构有ExifData, ExifContent, ExifEntryExifData包含了所有的
2012-07-07 14:31:38 13194 4
原创 jquery mobile 动态插入元素的正确渲染方法
jqm在初始化页面时会根据data-xxx在各元素中插入jqm的属性和类等。在页面初始化结束后,如果动态的插入一个元素,往往显示很丑陋,因为没有插入jqm的样式。这个可以用浏览器里的开发工具来查看,会发现有些元素多了很多类,而动态插入的元素代码还是你写的那样子。如果要使动态插入的元素具有jqm的样式,可以对jqm对象触发create事件: $(selector).trigger('crea
2012-06-20 00:08:17 15966
原创 webkit支持跨域的方法
修改文件WebCore/page/SecurityOrigin.cpp中的bool SecurityOrigin::canRequest(const KURL& url) const让它返回true网上有人说让bool SecurityOrigin::canAccess(const SecurityOrigin* other) const返回true,试了下不行另外,
2012-05-29 16:44:43 5649
原创 基于stringstream的类型转换封装
用法:lexical::cast_to::from(FromValue);如double a = lexical::cast_to::from("3.1416");特点:接口一目了然。能进行基本类型间的转换。实现:使用stringstream有一个问题就是如果源类型和目标类型都是string,即stringstream > out中的in和out都是st
2012-05-16 18:52:00 2467
转载 git reflog
git reflog 可以查看所有分支的所有操作记录(包括(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录具体一个例子,假设有三个commit, git st:commit3: add test3.ccommit2: add test2.ccommit1: add test1.c
2012-05-07 10:39:17 36377 2
原创 类型名字的获取及其应用(g++ only)
实现我们希望给定一个类型通过一个函数能返回该类型的字符串形式,比如给定char返回"char"。这里类型是作为模板参数。实现方法利用的是g++的扩展宏__RETTY_FUNCTION__,该宏是其所在函数的完整函数名的一个字符串,包括函数类型、返回值、所属类,对于模板函数,还包含模板参数的信息。比如templatevoid PrintFunction(){ printf("
2012-04-30 16:53:44 2170
原创 linux上搭建iOS开发环境
直接看 https://github.com/javacom/toolchain4 的README,很详细的步骤,基本没问题 . 所需的SDK我备份了 http://code.google.com/p/ios-devel/downloads/list其中gcc也可以用这个https://github.com/rotten-apples/gcc 5666.3的版本,苹果最新的gcc
2012-04-29 17:06:59 16153 1
原创 d-pointer
简介d-ponter由Trolltech公司(Qt)的Arnt Gulbrandsen命名,他首次将此技术引入到Qt,使Qt成为第一个具有二进制兼容性的C++gui库。这是一个增加私有数据成员而不破坏二进制兼容性的非常棒的办法。d-pointer技术把私有成员变量都保存在一个私有类的指针中大致结构如下widget.h// Forward-declar
2012-04-29 12:28:54 2774 1
原创 WebKit中的智能指针
前几天看了下webkit里的几种常用的智能指针代码,小结一下RefCounted:提供引用计数器功能。使用时继承之class Foo : public RefCounted为了更为方便安全地使用引用计数功能,webkit提供了RefPtr。ThreadSafeShared多线程版本的引用计数RefPtr / PassRefPtr保存支持引用计数的
2012-04-17 13:49:40 1636
原创 Qt4.8.1移植至iOS的小体会
04.01: 大部分模块都移植了,包括core, gui, declarative, sql, script, svg, xml, network(with ssl), multimedia, phonon, opengl(es2)。使用了qpa,但是只有minimal的qpa插件,所以还不能在屏幕上显示图形界面 前几天看到gitorious上有人移植了,但是下载链接打不开,于是
2012-03-29 22:25:14 4247 4
原创 git使用笔记3--分支合并与管理
Chapter 3-2,3合并在提交对象C2处创建分支iss53和hotfix然后合并hotfixgit checkout mastergit merge hotfix合并时出现“Fast forward”的提示。由于当前 master 分支所在的提交对象是要并入的 hotfix 分支的直接上游,Git 只需把 master 分支指针直接右移
2012-03-23 15:20:55 1866
原创 参加了2012 intel软件大会
很不错的大会,学到了蛮多东西。以前几乎没用过intel的开发工具,只接触过一点ipp。今天听了会上的介绍后发现这些工具很强大,用起来也很方便,用intel的编译器编译就能提升性能,Cilk Plus和TBB矢量并行化(不太理解)和线程并行化,使用的时候只要改很少的代码,还有许多牛逼的工具。发了张光盘,写着Intel Parallel Studio XE,拿到时很是兴奋,回去后马上插入打算试试会上讲
2012-03-16 21:17:02 966
原创 git使用笔记2--分支简介
from http://progit.org/bookChapter 3git 存储的是snapshotgit仓库的结构每个文件内容的blob( What is blob?)树(多少?):包含目录内容列表(?),文件名与blob的对应关系commit:指向根树(root tree)和所有commit元数据递交是, 会对每个子目录进行checksu
2012-03-12 11:13:09 731
原创 git使用笔记1--基本用法
from http://progit.org/book/Chapter 2初始化已经存在的projectgit init对文件纳入版本控制git add filenames这些文件就会被tracked克隆已存在的仓库git clone记录仓库的变化each file in your working directory can b
2012-03-12 09:45:15 962
原创 php绘制时钟
今天用php写了点东西,其中一个就是画时钟,记下来分享下。php的gd库里用来绘图还是很不错的。绘制时针分针使用imagefilledpolygon(),绘制表盘刻度线用imageline(),关键在于确定那些点的位置。没仔细查资料,对php也不太了解,不知道有没有矩阵变换之类的东西,还是自己写吧。先定义一个平面点集的旋转与平移变换函数,传入参数为大小是偶数的array,奇数位为x,偶
2012-02-23 23:03:16 3106
原创 qt文字光晕效果的一种实现
直接把我qtcn的文章贴过来了。 目前只实现了文字外面有单一颜色轮廓的效果,那种渐变发光的效果还不知道如何实现。QStringList text_lines = ......;QString text = weather_lines.join("n"); 计算绘制所有文字所需的尺寸 QFont f; f.setFamily(mFontName
2012-02-19 22:03:42 7785 1
原创 给wince编译7zip的方法(作者Pavlov提供)
之前需要移植7zip到wince平台,但是这么大的一个工程真不知道怎么编译。在sourceforge上抱着试试看的心态提了这个问题,没想到7zip的作者Pavlov很快就给我了回复,提供了三个批处理,很顺利地编译通过了。真的非常感谢,Pavlov真是热心。 我对批处理稍微做了点修改,尽量使用系统里已有的环境变量。 一共三个文件,arm5_.bat, compile.bat, compi
2012-02-16 13:07:18 1972 1
原创 wince的qt编译方法
环境已测试vs2008, wince 5.0 standard sdk 或windows mobile 6.0 professional,需要ActivePerl开始之前先要打补丁,貌似QtGui链接时会有错误,是libpng有函数未定义,对于4.7.4只要改成如下的代码就型。src/3rdparty/libpng/pnglibconf.h#ifndef _WIN32_WC
2012-02-12 16:21:14 2015
原创 qt4桌面和交叉编译统一脚本
由于要经常编译各种版本的qt库,每次都configure --help挺麻烦,于是写了个脚本来简化配置和编译。另外还写了两个脚本又来提取和替换私有头文件。配置和编译脚本buildqt4.sh脚本支持编译桌面版和嵌入式linux,已经测试的mkspec有linux-g++, qws/linux-armv6-g++, qws/linux-x86-g++,qt版本支持4.7.4, 4.8
2012-02-12 14:57:45 1868
原创 iPad上搭建c,c++,objc开发环境
注:sdk下载 http://code.google.com/p/ios-devel/downloads/list已在iPad2上成功搭好开发环境,测试了几个程序没问题。C环境首先安装libgcc,其它包都依赖它wget http://apt.saurik.com/debs/libgcc_4.2-20080410-1-6_iphoneos-arm.debdpkg
2012-02-11 00:38:28 15855
原创 NFS使用
NFS即网络文件系统。通过NFS可以将其某台计算机的目录通过挂载共享给其他计算机(如开发板),能提高开发和测试程序的效率。在我开发手机程序和开发板时经常使用。整个过程其实很简单,特别是客户端。服务端:先安装nfs服务sudo apt-get install nfs-kernel-server/etc/exports加入:/path_to_be_mount *(rw,f
2012-02-09 17:06:52 998
原创 对Boost::any的一个补充
Boost::any可以存取任意类型,是用模板实现的,不过它设计得非常巧妙,其本身不是个模板,而是用一个模板类的成员来进行数据存储的,这使得我们可以写出这样的代码:boost::any x((std::string(“Hello Cruel World!”));x = 123;x = 3.1416f;….但是如何把数据转变回来呢?Boost::any提供了几个非成员模
2011-12-28 23:11:35 820
原创 windows程序崩溃对话框和异常处理
经常碰到某些程序崩溃时弹出带红色叉叉的错误窗口或者是叫你选择调试或关闭的窗口,很碍眼。不过平时也没去理它,点掉就好。 今天客户反映我们的程序崩溃后就起不来了,其实我们为了方便无人化管理,做了一个守护进程。如果程序异常退出就会重启那个程序,这在linux下没问题,程序崩溃了就直接退出返回非零值,但是window就bug了,搞不好就给你弹出个错误对话框,你不点掉其实程序就没退出,守护
2011-12-26 22:34:28 14744
VS2012编译环境(无IDE)
2013-02-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人