-
2008-01-15
诺基亚N73疑难杂症解答 - [默认分类]
诺基亚N73疑难杂症解答
以下是一些出错的代码,你可以轻松了解到出错的原因,不在为爱机系统出错头痛!
KErrNotFound-1
找不到指定文件
KErrGeneral-2 一般错误
KErrCancel-3
操作被取消
KErrNoMemory-4
内存不足
KErrNotSupported-5 &n... -
2007-10-28
解决putty上vi小键盘不好使的问题 - [默认分类]
原来在putty上用vi的时候,开NumLock时按小键盘上的数字键并不能输入数字,而是出现一个字母然后换行(实际上是命令模式上对应上下左右的键)。输入数字的时候,不能用小键盘总是很不舒服的。于是就去找解决办法。
解决办法:在选项 Terminal->Features 里,找到 Disable application keypad mode ,选上就可以了。
-
2007-10-05
用 wine 装QQ - [默认分类]
复制win下的mfc42.dll,msvcp60.dll,riched20.dll,riched32.dll到wine的 system32目录下(riched20.dll,riched32.dl可能已经有了 就不需要了)
安装qq
破解qq的sb防钩子程序
删除你qq安装目录下(一般为~/.wine/drive_c/Program Files/Tencent/QQ)的TIMPlatform.exe 这个文件设置 riched20.dll
打开winecfg,在libraries选项页下,添加riched20.dll和riched32.dll (别忘复制这两个文件到你wine的system32目录下) 然后选edit,都设为nativeOK
现在的wine 安装QQ 方便多了
-
2007-10-05
离线安装 Wine Gecko - [默认分类]
当Wine程序需要显示HTML网页时,Wine就会弹出Wine Gecko Installer窗口要求安装Gecko,而它又要连到网上下载Gecko,对于网络不好或教育网的用户通常是安装不了的。今天参考这篇文章:http://appdb.winehq.org/appview.php?iVersionId=6422,解决了离线安装Wine Gecko的问题。步骤如下:
1. 从http://source.winehq.org/winegecko.php下载 wine_gecko.cab
2. $ cp wine_gecko.cab ~/.wine/drive_c/
3. $ regedit
修改 HKCU/Software/Wine/MSHTML 中的GeckoUrl为:C:\wine_gecko.cab,可参看附图1
4. 接着执行需要HTML支持的程序,当弹出Wine Gecko Instalerl窗口时,点安装就行了,这是你会发现它瞬间就安装完成了。
5. 删除wine_gecko.cab,$ rm ~/.wine/drive_c/wine_gecko.cab -
2007-10-04
Wine的完全使用指南 - [默认分类]
1.1Wine is not an emulator
这个我就不翻译了,没有多少技术介绍。
1.2使用最新的Wine
记住最新版的Wine会包含一些旧版本里没有的bug。在feisty的软件仓库里包含了 0.9.33,而最新的Wine是0.9.44(我翻译文章时)。0.9.33更加稳定,但是最新的版本包含重大的DirectX改进。有一些不能在 0.9.33下运行的游戏能够在0.9.44中很好地运行。在使用0.9.37到0.9.40之间的某些版本运行KotOR2时,声音在我的系统上崩溃了。那是最好的有关使用最新版导致棘手问题的好例子。
(译者:我个人还是推荐使用最新版,使用新版本会有更好的运行速度,而且基本上每个bug都会在未来的2~3个版本中被修复)... -
2007-10-02
为 blog 添加引用框 - [默认分类]
点击 html 添加如下代码:
<blockquote style="border: 1px solid #9898ba; padding: 7px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> 你写的内容 </blockquote>
参考:
http://quasimo.blogbus.com/logs/2005/11/1634952.html
-
2007-09-15
让vim在utf-8的local下打开 gbk 文件 - [默认分类]
~/.vimrc加入
set fencs=utf-8,gbk
这一行的作用是告诉 vim,打开一个文件时,尝试 utf8,gbk 两种编码,vim 只
需要扫描文件的前一段,就可以根据文件里面的数据判断出文件是否用的是
utf8 或者 gbk 编码。如果不指定这一行,则 vim 只会用当前编码 (locale)
来打开文件,因为你的 locale 是 UTF-8,而文件是 gbk,所以打开是乱码。
-
2007-09-03
firefox 标签取消聚焦 - [默认分类]
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
.tabbrowser-tab {
-moz-user-focus: ignore !important;
} -
2007-09-02
关于unix高级环境编程 编译时的err_sys和err_quit错误的解决办法 - [默认分类]
其实在附录B中W. Richard Stevens, Stephen A. Rago已经实现了这些函数,
把这些实现了的函数写成了头文件,再编译程序时只要包含该头文件就不会出现编译错误的情况了。
-
2007-09-02
史上最强的 Vim 配置文件? - [默认分类]
Vim 之所以经久不衰,是因为它好用。但真正要让 Vim 好用起来,也许离不开对它的配置。这里有 一个可能是史上最强大的 Vim 配置文件?因为这个配置文件的总行数达到了 800 多行。不仅如此,它还集成了一些非常好用的 Vim 脚本,使 Vim 的功能变得异常强大。作者还将这个配置文件写得不仅适用于 Linux,而且也可用于 Mac 中。如果你是一个 Vim Fans,千万要试试。→ 转载时务必以超链接形式标明文章原始出处及作者信息。
→ 本文网址:http://linuxtoy.org/archives/vimrc.html -
2007-08-31
Deepin XP Lite 完美精简版 - [默认分类]
http://www.97sky.cn/downinfo/91.html -
2007-08-31
让Firefox访问剪切板 - [默认分类]
改正方法很简单:退出Firefox(对于Mozilla Suite,如果打开了Quick Launch也要把Quick Launch关闭),在您Firefox的Profile目录(一般是
C:\Documents and Settings\[用户名]\Application Data\Mozilla\Firefox\Profiles\xxxxxxxx.default\,“xxxxxxxx”默认会是一个长度为8的字符串,如果更改了的话就另当别论)下新建一个user.js(默认是没有,有当然更好:P)或者 prefs.js ,最后在这个user.js 或 prefs.js 里加入以下几行:user_pref("capability.policy.policynames", "allowclipboard");
添加多个sites时,sites和sites之间用空格隔开
user_pref("capability.policy.allowclipboard.sites", "http://www.mozilla.org");
user_pref("capability.policy.allowclipboard.Clipboard.cutcopy", "allAccess");
user_pref("capability.policy.allowclipboard.Clipboard.paste", "allAccess");
再打开Firefox就可以对Rich Edit控件Cut&Copy&Paste了。
参考: -
2007-08-30
urxvt下的vim 和 鼠标 - [默认分类]
当 vim 启用鼠标的支持的时候 (set mouse=a) , 在urxvt下用vim的时候 就不能直接用鼠标选中要复制的内容,然后用鼠标中键贴到其他的地方。
需要按住 shift 然后用鼠标选取要选种的内容 , 就可以了 。
ps: 我用了vi才会有这个毛病 vim没有 晕
-
2007-07-22
DialogBlocks 注册机 - [默认分类]
在DialogBlocks 4.11 上注册通过
-
2007-07-19
linux 下编译 wxWidgets 程序 - [默认分类]
g++ hworld.cpp $(wx-config --libs --cxxflags) -o hworld -
2007-07-16
wxWidgets在windows & VC++下的安装 - [默认分类]
版本和环境:
wxWidgets 2.8.3
Windows2000 sp4
VC++ 6.0step1:下载wxMSW-2.8.3-Setup.exe,将其安装到C:\wxWidgets_283.(或下载zip包直接解压)
安装后的文件夹中有全部的代码和文档以及示例。但没有编译好的lib。因为你可以按照自己的需要去编译。不过好歹要麻烦一下了,好在编译非常方便。
step2: 编译之前的配置
C:\wxWidgets_283\build\msw中找到config.vc
C:\wxWidgets_283\include\wx\msw中找到setup.h可进行一些全局的设置(对你编译出的所有库都有效),特别是setup.h将被拷贝到各个lib的目录中去。当你改变setup.h时要先手工删掉lib下面的setup.h
这儿我只是打开了opengl支持库的编译选项。
step3:编译
可用两种方式编译:1)C:\wxWidgets_283\build\msw 下面的vc projects 2)使用命令行
我选择第二种方法。我使用的是VC++6,所以使用nmake。
我编译了三个版本的库,分别是unicode debug/release静态库和unicode release动态链接库
nmake -f makefile.vc UNICODE=1 BUILD=release
nmake -f makefile.vc UNICODE=1 BUILD=debug
nmake -f makefile.vc UNICODE=1 SHARED=1 BUILD=release编译后的库位于:
C:\wxWidgets_283\lib\vc_lib debug版本和release版本的库都在一起,区别在于名称debug版多了个d,如:
wxbase28u.lib和wxbase28ud.libC:\wxWidgets_283\lib\vc_dll dll库和他们的导入库都在这个目录中
编译sample
库编译好了试试编译C:\wxWidgets_283\samples中的例子,选择minimal这个最小化的例子。
用VC++6打开工程,可以看到以及预设了很多配置,分别选择Win32 Unicode Debug/Release和Win32 DLL Unicode Release试试。注意由于sample项目都添加了对于base和core的依赖,所以直接选择build会重新编译一遍相应的库。所以手动把依赖去掉。然后build minimal.
分别编译3个版本,对应上面做出的三种库。发现动态版的minimal.exe需要两个dll,这两个dll加起来要4M之多,而静态release版的minimal.exe只有1M多。http://cnwxwidgets.googlepages.com/wxindex.html
-
2007-07-15
C语言中的类模拟(C++编程思想) - [默认分类]
在面向对象的语言里面,出现了类的概念。这是编程思想的一种进化。所谓类:是对特定数据的特定操作的集合体。所以说类包含了两个范畴:数据和操作。而C语言中的struct仅仅是数据的集合。(liyuming1978@163.com)
1.实例:下面先从一个小例子看起#ifndef C_Class#define C_Class struct#endifC_Class A {C_Class A *A_this;void (*Foo)(C_Class A *A_this);int a;int b;};C_Class B{ //B继承了AC_Class B *B_this; //顺序很重要void (*Foo)(C_Class B *Bthis); //虚函数int a;int b;int c;};void B_F2(C_Class B *Bthis){printf("It is B_Fun\n");}void A_Foo(C_Class A *Athis){printf("It is A.a=%d\n",Athis->a);//或者这里// exit(1);// printf("纯虚 不允许执行\n");//或者这里}void B_Foo(C_Class B *Bthis){printf("It is B.c=%d\n",Bthis->c);}void A_Creat(struct A* p){p->Foo=A_Foo;p->a=1;p->b=2;p->A_this=p;}void B_Creat(struct B* p){p->Foo=B_Foo;p->a=11;p->b=12;p->c=13;p->B_this=p;}int main(int argc, char* argv[]){C_Class A *ma,a;C_Class B *mb,b;A_Creat(&a);//实例化B_Creat(&b);mb=&b;ma=&a;ma=(C_Class A*)mb;//引入多态指针printf("%d\n",ma->a);//可惜的就是 函数变量没有privatema->Foo(ma);//多态a.Foo(&a);//不是多态了B_F2(&b);//成员函数,因为效率问题不使用函数指针return 0;}输出结果:11It is B.c=13It is A.a=1It is B_Fun2.类模拟解说:我在网上看见过一篇文章讲述了类似的思想(据说C++编程思想上有更加详细的解说,可惜我没空看这个了,如果有知道的人说一说吧)。但是就象C++之父说的:“C++和C是两种语言”。所以不要被他们在语法上的类似就混淆使用,那样有可能会导致一些不可预料的事情发生。其实我很同意这样的观点,本文的目的也不是想用C模拟C++,用一个语言去模拟另外一个语言是完全没有意义的。我的目的是想解决C语言中,整体框架结构过于分散、以及数据和函数脱节的问题。C语言的一大问题是结构松散,虽然现在好的大型程序都基本上按照一个功能一个文件的设计方式,但是无法做到更小的颗粒化――原因就在于它的数据和函数的脱节。类和普通的函数集合的最大区别就在于这里。类可以实例化,这样相同的函数就可以对应不同的实例化类的变量。自然语言的一个特点是概括:比如说表。可以说手表,钟表,秒表等等,这样的描述用面向对象的语言可以说是抽象(继承和多态)。但是我们更要注意到,即使对应于手表这个种类,还是有表链的长度,表盘的颜色等等细节属性,这样细微的属性如果还用抽象,就无法避免类膨胀的问题。所以说类用成员变量来描述这样的属性。这样实例并初始化不同的类,就描述了不同属性的对象。但是在C语言中,这样做是不可能的(至少语言本身不提供这样的功能)。C语言中,如果各个函数要共享一个变量,必须使用全局变量(一个文件内)。但是全局变量不能再次实例化了。所以通常的办法是定义一个数组。以往C语言在处理这样的问题的时候通常的办法就是这样,比如说socket的号,handel等等其实都是数组的下标。(不同的连接对应不同的号,不同的窗口对应不同的handel,其实这和不同的类有不同的成员变量是一个意思)个人认为:两种形式(数组和模拟类)并无本质的区别(如果不考虑虚函数的应用的话),它们的唯一区别是:数组的办法将空间申请放在了“模块”内,而类模拟的办法将空间申请留给了外部,可以说就这一点上,类模拟更加灵活。 -
2007-07-04
为Firefox添加“百度”搜索选项 - [默认分类]
打开http://mycroft.mozdev.org/download.html,在搜索框中输入baidu,然后在结果中点击“Baidu (百度)”即可。 -
1 shiftwidth:这个是用于程序中自动缩进所使用的空白长度指示的。一般来说为了保持程序的美观,和下面的参数最好一致。同时它也是>>或者<<符号移位长度的制定者。
2 tabstop:定义tab所等同的空格长度,一般来说最好设置成8,因为如果是其它值的话,可能引起文件在打印之类的场合中看起来很别扭。除非你设置了 expandtab模式,也就是把tabs转换成空格,这样的话就不会一起混淆,不过毕竟制表符为8是最常用最普遍的设置,所以一般还是不要改。
3 softtabstop 如果我们希望改变程序中的缩进怎么办?shiftwidth和tabstop不一样的话,你会发现程序比较难看的。这时候,softtabstop就起作用了。可以从vim的说明中看到,一旦设置了softtabstop的值时,你按下tab键,插入的是空格和tab制表符的混合,具体如何混合取决于你设定的softtabstop,举个例子,如果设定softtabstop=8,那么按下tab键,插入的就是正常的一个制表符;如果设定 softtabstop=16,那么插入的就是两个制表符;如果softtabstop=12,那么插入的就是一个制表符加上4个空格;如果 softtabstop=4呢?那么一开始,插入的就是4个空格,此时一旦你再按下一次tab,这次的四个空格就会和上次的四个空格组合起来变成一个制表符。换句话说,softtabstop是“逢8空格进1制表符”,前提是你tabstop=8。 -
2007-07-02
firefox关联amule - [默认分类]
新建一个Boolean,名字为network.protocol-handler.external.ed2k,值为true
新建一个String,名字为network.protocol-handler.app.ed2k,值为/usr/bin/ed2k (这个要根据你自己文件所在的位置) -
2007-06-24
设定 gvim 的窗口大小 - [默认分类]
set lines=55 -
2007-06-22
修正 FireFox 的表单控件在 Linux 下丑陋的问题 - [默认分类]

修正后,变为:

此解决方法是 ubuntuforums.org 提出的,这里移植到 Everest 上。
首先如果运行着 Firefox,那么关闭它。然后打开终端命令提示符,输入下面的命令:
wget http://www.linux-ren.org//uploads/newbb/14_465d20ba9c325.bz2 -O firefox-form-widgets.tar.bz2
tar xvf firefox-form-widgets.tar.gz
sudo cp /usr/lib/firefox/res/forms.css /usr/lib/firefox/res/forms.css.bak
cat firefox-form-widgets/res/forms-extra.css | sudo tee --append /usr/lib/firefox/res/forms.css > /dev/null
sudo cp -r firefox-form-widgets/res/form-widgets /usr/lib/firefox/res
rm -rf firefox-form-widgets
再打开 Firefox,一切就变得好看了。注:ArchLinux 的firefox在 /opt/mozilla 下面
-
2007-06-20
vi部分命令. 替换操作; 文本格式转换; 在整个文件中替换; 在行首尾添加字符串. - [默认分类]
注意,其中“s”为表示替换动作,“%”表示所有行,“g”表示全文,“^”表示行首,“$”表示行尾。
在文件的第一行或其5行至最后一行的行首插入内容 :5,$s/^/要加的内容/
在文件的每一行的行尾添加内容 :%s/$/要加的内容/g
在整个文件中替换string成string1 :%s/string/string1/g
替换操作
经常用到的一些简单替换命令有:
◆ s 将当前字符替换为一个或多个字符,例如5 s 表示将从当前字符开始的5个字符替换为一个或多个字符;
◆ S 将当前行替换为一个或多个字符;
◆ r 单个字符替换。
文本格式转换
将DOS格式文本转成Unix格式文本,命令如下:
:1,$s/^M//g
其中^M是同时Ctrl+V+M按出来的,表示回车。
在行首尾添加字符串
用下列命令在文本每行的行首添加字符串“NewString”,请注意空格的存在。
:g/^/s//NewString/g
:%s/^/NewString/g
用下列命令在每行的行尾添加字符串“NewString”:
:g/$/s//NewString/g
:%s/$/NewString/g
从文本的第3行至最后一行的行首全部插入字符串“NewString”:
:3,$s/^/NewString/
在整个文件中替换
在整个文件中替换特定字符串,所用的命令如下:
:%s/old_string/new_string/g
如果仅将文件中的第3行到第7行中的“old_string”替换成“new_string”,那么使用下列命令:
:3,7s/old_string/new_string/
复制 y
粘贴 p
选择开始 v







