Monthly Archives: 十一月 2011
补码
最近搞webqq的研究,因为前台密码md5加密有太多了位运算(bit-wise operation),在将js代码转为c代码的过程中发现了一些问题。 c语言里面的位运算有与(&)或(|)非(~)异或(^)左移(<<)右移(>>)。 在32位windows xp,vc2005环境下,int和long都是4位(sizeof(int)==4)。所以我初步判断这样的环境下int和long没有区别。 int分为有符号(signed)和无符号(unsigned)。 当int为有符号时(默认)表示的范围是0×00000000(0)到0x7FFFFFFFF(2147483647)到0×800000000(-2147483648)到0xFFFFFFFF(-1) 当int为无符号时(默认)表示的范围是0×00000000(0)到0x7FFFFFFFF(2147483647)到0×800000000(2147483648)到0xFFFFFFFF(4294967295) 同理2个Bytes的short型数据类型是这样的: signed short:0×0000(0)到0x7FFF(32767)到0×8000(-32768)到0xFFFF(-1) unsigned short:0×0000(0)到0x7FFF(32767)到0×8000(32768)到0xFFFF(65535) 一个关于2进制在计算机中运算的形象例子: 11111 111 (进位) 0000 1111 (15) + 1111 1011 (-5) ================== 0000 1010 (10) 计算机系统中为啥非要使用补码呢?这个问题哥在上大学上汇编课的时候老师没有讲过,只是给你将转码的公式,你记住就有分了。其实大家都忘了补码存在的意义:二补数系统的最大优点是可以在加法或减法处理中,不需因为数字的正负而使用不同的计算方式。只要一种加法电路就可以处理各种有号数加法,而且减法可以用一个数加上另一个数的二补数来表示,因此只要有加法电路及二补数电路即可完成各种有号数加法及减法,在电路设计上相当方便。 总之优点降低电路设计的复杂度。 more info : http://zh.wikipedia.org/wiki/二補數
libcurl 无法解析的外部符号
仔细检查一下几点,防止“无法解析的外部符号”链接问题的出现。 确保curllib项目的运行时库和引用curllib.lib程序的运行时库(c/c++ ->code generation)保持一致(比如都是/MDd)。 确保curllib项目和引用curllib.lib项目的程序的字符集保持一致(比如都是:使用多字节字符集)。 确保curllib项目在没有LDAP支持的情况下在preprocessor definition中加入:CURL_DISABLE_LDAP(/D)。 编译curllib静态库时,请在preprocessor definition中加入:CURL_STATICLIB
《光棍儿》
某网友的影评:作为中国的独立电影,这部片儿牛逼了。讲农村里四个光棍儿的性生活,赤裸裸的生猛鲜活。作为人性和生存法则,农村的男女关系竟然要比我们想象的开放得多。戏台上,荤段子段儿段儿地唱;光棍儿老杨,年轻时爱过,老了吃过嫩草,晚年嫖了妓,还被搞了基…荒诞又荒凉的现实感。 小姐,有黄米没? 咱们这儿不卖粮食。 透你娘!
预览视频explorer.exe崩溃
XP有 一个 影音文件 预览功能,该功能有 时候 能 导致大型AVI文件在预览时explorer.exe崩溃,还能导致影音文件无法删除,在 命令行中输入 REGSVR32 /U SHMEDIA.DLL 就可解决这两个问题 如果要恢复视频预览功能时只要输入 REGSVR32 SHMEDIA.DLL
我的php.ini模版
[PHP] ;;;;;;;;;;;;;;;;;;;; ; Language Options ; ;;;;;;;;;;;;;;;;;;;; engine = On zend.ze1_compatibility_mode = Off short_open_tag = Off asp_tags = Off precision = 14 y2k_compliance = On output_buffering = On zlib.output_compression = Off implicit_flush = Off unserialize_callback_func= serialize_precision = 100 allow_call_time_pass_reference = … Continue reading
php报错链接到php manual
在写php程序的时候,有时候函数有误,php报错的函数紧跟着这个函数的链接,一般情况下我们打开都是不存在的页面。那是因为没有设置。 设置方法: 到http://php.net/docs.php下载php manual,格式选择many HTML file解压到本地 F:\book\php\php-chunked-xhtml 目录。 php.ini加入以下设置: docref_root = “/phpmanual/” docref_ext = .html apache加入以下Alias设置: #phpmanual Alias /phpmanual “F:/book/php/php-chunked-xhtml/” <Directory “F:/book/php/php-chunked-xhtml/”> Options Indexes FollowSymLinks MultiViews AllowOverride all Order Deny,Allow Allow from all </Directory> 重启apache服务器。点击[function.mysql_connect.html]自动跳转到对应函数的文档。
我的httpd.conf模版
ServerRoot “D:/wamp/bin/apache/apache2.2.17″ Listen 80 LoadModule actions_module modules/mod_actions.so LoadModule alias_module modules/mod_alias.so LoadModule asis_module modules/mod_asis.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule authn_default_module modules/mod_authn_default.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authz_default_module modules/mod_authz_default.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule cgi_module modules/mod_cgi.so … Continue reading
wampserver使用Aestan Tray Menu托盘程序制作
在windows平台编写、调试php程序最方便的一个wamp环境应该算是wampserver了。国内的phpnow在2010-09-22更新到1.5.6之后就停止了下来,版本过低,安全性受到极大影响。但是如果你会折腾,应该知道如果让phpnow套件加载你自己的amp版本。听说phpnow的作者在搞一个http库叫cutehttpd。是个神马东东暂时还不得而已。难道可以在apache、nginx之间自由的切换?呵呵 言归正传,我们都知道wampserver是基于GPL v2授权(参考程序主目录下面的license.txt),但是丫的在sf.net并木有wampserver的source code。为什吗啊。右击wampmanager.exe,看描述。其实这个程序不是wampserver作者写的。 WampServer Version 2.1 Created by Romain Bourdon (romain@romainbourdon.com) Maintainer / Upgrade / RoadMap by Herve Leclerc (herve.leclerc@alterway.fr) Sources are available at SourceForge http://www.wampserver.com 而是直接没有修改源代码的情况下使用了Aestan Tray Menu(Delphi写的),这个万能托盘程序,通过修改同名exe的ini文件的读取来配置这个托盘程序的行为。 在wampserver主目录下面有三个配置文件,wampmanager.ini,wampmanager.conf,wampmanager.tpl。 wampmanager.conf定义了amp的版本,启动、停止的参数。daemon程序名字。 wampmanager.ini就是Aestan Tray Menu要读取的配置文件了。我们知道wampserver可以通过安装addons的形式来安装其他版本的AMP,安装之后可以在多个AMP版本之间自由切换。靠的就是这个ini文件。这个文件都是通过wampmanager.tpl的模版的生成的。其实这个tpl是一个php脚本,通过php-win.exe执行。所以只需要将要修改的内容设置为一个变量(比如:${c_phpCli}),然后替换就可以了。
Deprecated: Function set_magic_quotes_runtime() is deprecated
Deprecated: Function set_magic_quotes_runtime() is deprecated 导致这个提示的原因是在PHP5.3后此特性(set_magic_quotes_runtime())已经关闭。 而且在PHP6中已经完全移除此特性。 你可以注释或者删除掉出错的行,或者是在set_magic_quotes_runtime()前面加@符号。 This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged. gusb at NOSPAM dot mailinator dot com 10-Oct-2011 11:14 You should NEVER rely on magic quotes or addslashes for … Continue reading
mod_rewrite引起的internal server error
虚拟主机网站根目录下有.htaccess。而虚拟主机的配置是: <VirtualHost *> <Directory “D:/www/xxx”> Options -Indexes FollowSymLinks Allow from all AllowOverride All </Directory> ServerAdmin admin@xxx DocumentRoot “D:/www/xxx” ServerName xxx:80 ServerAlias xxx ErrorLog logs/xxx-error_log </VirtualHost> 因为是AllowOverride是All,可以.htaccess文件重载了这个虚拟主机的配置。然后.htaccess里面有Rewrite模块的指令。而httpd.conf并没有LoadModule mod_rewrite.so。所有出现了500 Internal Server Error。 解决方法要么AllowOverride修改为None,要么删除.htaccess,要么,将mod_rewrite加载进来。