Sep 10

神奇的Boolean

   1:  

   2: // "true" or "false"

   3: public static string Bool2Str(bool b)

   4: {

   5:     switch (b)

   6:     {

   7:         case true:

   8:         return System.Boolean.TrueString;

   9:         case false:

  10:         return System.Boolean.FalseString;

  11:         default:

  12:         return "error";

  13:     }

  14: } 

  15:  

  16: Console.WriteLine(Bool2Str(true));

  17: Console.WriteLine(Bool2Str(false)); 

  18: unsafe

  19: {

  20:     bool val;

  21:     *((byte*)&val) = 2;

  22:     Console.WriteLine(val); 

  23:     Console.WriteLine(val==true); 

  24:     Console.WriteLine(Bool2Str(val));

  25: }

  26:  

大家可以猜一下这段代码会输出什么,我也是看了某篇文章的评论才知道会出现这么诡异的情况。。。

Sep 23

EP翻墙法:OpenVPN+FoxyProxy

之前一直没用过VPN翻墙,因为VPN需要手动打开关闭,对我等用惯FG+FoxyProxy自动切换的人来说实在是很麻烦。。。(话说我连FG都设成服务让它自动启动了。。。

不过最近60大寿,FG和U相继RP,基本是没法用了。前两天实在无法忍受墙内的日子,弄了个OpenVPN回来研究,EP了半天终于研究出来了。。。

说起来原理其实很简单,只要不让OpenVPN修改全局路由,然后弄个代理服务器程序把本地端口绑定到虚拟网卡就可以了。不过这程序倒是费了一番周折,Google根本找不到小型能指定本地绑定ip的代理服务器。。。最后只好自己写一个。。。

不罗嗦了,这里简单说下步骤:

  1. 配置OpenVPN到可用状态,Google很多教程,这里就不说了。目前我用过AlonWebUltraVPN的服务,感觉上UltraVPN快一点,而且没有广告。
  2. 在配置文件加上以下内容(如有重复可以删除,路径请自行修正):
    route-noexec
    
    route-up "cmd /c D:\\OpenVPN\\config\\runproxy.cmd"
    
    script-security 3 system
    
    down "cmd /c taskkill /f /im proxy.exe & echo DOWN"
  3. runproxy.cmd(注意if后面的数字要改成自己机器虚拟网卡的编号,可在CMD运行Route print查看):

    @echo off 
    cd /d "%~dp0"
    route delete %route_network_1% mask %route_netmask_1%  if 32
    route delete 0.0.0.0 mask 0.0.0.0  if 32
    
    
    route add %route_network_1% mask %route_netmask_1% %route_gateway_1% metric 1 if 32
    route add 0.0.0.0 mask 0.0.0.0 %route_vpn_gateway% metric 1 if 32
    
    taskkill /f /im proxy.exe
    start proxy.exe %ifconfig_local%
  4. 启动OpenVPN后,把FoxyProxy的代理设置为127.0.0.1:8119即可。

 

配置模板、代理程序及源代码

(代理程序需要.Net 2.0)

祝各位翻墙愉快。。。

Across the Great FireWall we can reach every corner in the world.

Jan 21

终于恢复了。。。囧

挂了整整两个星期。。。起因就是我手贱。。。orz。。。

网站数据全部挂了。。。找Godaddy也恢复不了。。。还好日志是放在数据库的,不然就要跳楼了。。。

这个星期忙死了。。。之前弄了个项目。。。等过完年有空发掉。。。

Oct 06

发现了Haali分离器非正常退出时内嵌字体残留的原因。。。

翻MSDN的时候偶然发现用AddFontResourceEx安装内嵌字体的话,是可以让windows在进程终结的时候自动把字体卸载的。而haali安装内嵌字体的时候用的是AddFontResource,这个函数加载的字体必须手动卸载。。。于是播放器非正常结束的时候字体就残留在内存了。。。

只有等haali更新的时候修复这个bug了。。。(话说已经大半年没有更新了。。。orz

PS:顺便去看了mpc-hc内置mkv分离器的源代码,它安装字体的时候是用AddFontResourceEx,所以应该不会出现这个问题。。。