水面效果的2D实现

游戏里需要一个背景,直接贴 2d 图片的话显得有些单调了,打算做个动态的背景。用水面的话视野比较广阔,感觉比较合适。因为游戏是直接用 dx 写的,所以水面的实现也自然是写 shader 来完成了。


Apache 虚拟主机配置 SSL

总结一下Linux(样例为 centos)上 apache 为多台虚拟主机启用 ssl 连接的设置。


Ramnit 蠕虫分析

最近在办公室里突然有蠕虫传播开了,因为办公室内网里都是没装杀软的,然后发发邮件就感染一片了(笑),而且只要有一台计算机没有清除就依然会传遍局域网。在电脑上找了一下,发现了名称为 DesktopLayer.exe 的病毒文件,于是把它保留了一份,打算研究研究。


Duilib无法连续创建两个模态对话框

调试一个 Duilib 界面程序时遇到一个问题:当在主函数里使用 ShowModal() 显示第一个对话框并关闭对话框后,再一次使用 ShowModal() 显示第二个对话框时第二个对话框便直接关闭退出了。


指针类型的类成员变量突然指向无效内存

最近在查一个Bug,好几天下来一直没有头绪,而且重现条件挺看RP……查了一阵子遇到阻碍,感觉没有什么思路,总之先加了一些日志,顺便在这里记录一下状况。


《修改代码的艺术》读书笔记

第6章 修改代码的技术

    新生方法:

  • 将新增代码形成一个新的方法,并在修改点对其进行调用。
  • 类的依赖关系太恶劣时,可考虑将新方法作为公有静态方法,并将this作为参数传递(便于测试)
    新生类:

  • 确定修改点后在修改点生成新的类,需要将原来的局部变量传递时则将其传递给构造函数,同时有需要返回结果则构建对应的方法并进行调用来获得结果。
  • 优点在于进行侵入型较强的修改时能有更大的自信继续进行,而且不用改变现有的头文件,不会增加原类的编译负担。
  • 缺点是会使系统中的概念复杂化。

软件中出现纯虚函数被调用的错误

我的情况是退出软件时偶尔产生这种错误,也算是多线程中的一个使用不当的情况。
简化后的模型如下:


win7在任务栏上固定图标后运行时会出现两个图标的问题

有些应用在往任务栏(win7及以后)上固定图标后,单击图标运行实例时会生成一个新的图标,win7下似乎还能再次固定新的图标。

造成两个图标的原因在于应用使用了自定义的AppUserModelID
win7及以后的任务栏通过AppUserModelID来关联程序的图标,也就是说相同AppUserModelID的进程会在任务栏上共用一个图标。比如资源管理器,当你打开多个资源管理器窗口时,任务栏上始终只有一个对应的图标,鼠标移至图标上时就会显示出所有打开的窗口,也就是所有窗口被分为同一组了。应用程序可以根据实际需要来设置这个ID相同与否来达到控制应用在任务栏上的图标显示,特别是对于一些多进程、多显示窗口的应用用处会比较大。


重编译openCV

现在3.X的openCV似乎默认没有生成x86版本的lib和dll了,需要自己重新生成一份。(使用的环境是Win7x64 + vs2015)

  1. 准备工具
      openCV(3.2.0)
      CMake(3.7.2)


jpeglib的使用(使用VS2010编译)

1、编译环境的安装
  1.1 解压从www.ijg.org上下载的源码,安装VS2010。
  1.2 在打开cmd定位到解压后的jpeg库目录中,并执行 NMAKE /f makefile.vc setup-v10 。(在install.txt的”HINTS FOR SPECIFIC SYSTEMS”一节中)此操作将生成(其实是重命名)vs2010的一系列工程文件。(提示nmake不是有效命令的话则修要设置环境变量的path并重启cmd)