2011年2月20日
摘要: 在Win32编程中,如果要显示一个模态窗口,一般是先创建对话框模板,然后使用DialogBox来显示对话框。这种做法很简单,但存在一个问题:对话框是以资源的形式保存在可执行文件中的,如果可执行文件没有进行加壳处理的话,任何人都可以通过ExeScope等资源修改工具修改对话框的内容,这对于含有版权信息的“关于”对话框来说是非常危险的,怀有不良目的的人只需进行简单的操作就可以将一个软件变成是自己的。保护软件的版权信息不被修改有很多种方法,在这里我想说的一种方法是用代码来创建“关于”对话框的内容,在运行时才创建这个对话框,而不是通过对话框模板早早就创建 阅读全文
posted @ 2011-02-20 14:05 Zplutor 阅读(7108) 评论(2) 推荐(0) 编辑
  2010年11月27日
摘要: 在我刚开始学C/C++的时候,字符类型使用的都是char。接触Win32编程之后,养成了使用wchar_t的习惯,于是再写控制台程序的时候自然就使用wchar_t了。然而在控制台程序中使用宽字符会导致各种奇怪的问题,这些问题主要是在输出上。下面分享一下我在这方面的心得。首先来看一下这段代码:#include <stdio.h>int main() { wprintf(L"%s", L"博客园"); return 0;}wprintf用于输出宽字符类型的字符串,看上去似乎没有错误。但这段代码的输出却是三个问号。这是使用wprintf时最典型的问 阅读全文
posted @ 2010-11-27 10:06 Zplutor 阅读(5963) 评论(0) 推荐(2) 编辑
  2010年10月8日
摘要: 在使用CString的GetBufferSetLength方法时,遇到了一个问题,代码如下:CString path;::GetCurrentDirectory(MAX_PATH, path.GetBufferSetLength(MAX_PATH));path.Append(TEXT("\\SubDir"));wprintf(TEXT("%s"), path);这段代码的输出始终是E:\Proje... 阅读全文
posted @ 2010-10-08 22:59 Zplutor 阅读(7232) 评论(1) 推荐(1) 编辑
  2010年8月21日
摘要: Windows路径是我们经常使用的东西,它看似简单,实际上隐含许多细节,这些都是在平常的使用过程中注意不到的。下面让我们来看看各种各样的Windows路径。 提起路径,我们都会想到“绝对路径”和“相对路径”,实际上绝对路径是一个广泛的概念,它表示的是可以唯一定位一个文件或文件夹的路径,有多种形式的路径都属于绝对路径的范畴,例如: 完整路径(Full... 阅读全文
posted @ 2010-08-21 15:17 Zplutor 阅读(8859) 评论(1) 推荐(1) 编辑
  2010年5月29日
摘要: 最近尝试了一下SubVersion,觉得还不错,于是将现有项目的所有文件都添加到了版本库中。不过在对SQL Server的数据库文件进行版本控制时出现了一点小麻烦,大家都知道当SQL Server的数据库文件附加到数据库引擎上时是不能复制的,在这个时候SubVersion的客户端工具甚至不能检测到这些文件!于是在每次签入、签出的时候都要打开SQL Server Management Studio进... 阅读全文
posted @ 2010-05-29 19:28 Zplutor 阅读(4789) 评论(3) 推荐(0) 编辑
  2010年5月24日
摘要: 发送邮件功能的实现有时我们需要在网站中加入发送邮件的功能,例如一个网上投稿系统,当稿件被采用的时候发送邮件通知作者。下面就以这个功能为例说明如何实现自动发送邮件。实现发送邮件功能首先说一下在.Net下如何发送邮件。.Net已经为我们准备好了与发送邮件相关的类,只要直接调用即可,非常方便。下面是我自己写的一个邮件通知类:/// <summary>/// 邮件通知服务类。/// </... 阅读全文
posted @ 2010-05-24 22:14 Zplutor 阅读(5358) 评论(7) 推荐(1) 编辑
  2010年5月4日
摘要: 谈到字符编码,一大串名词接踵而来:ASCII,GB2312,GBK,BIG5,Unicode,UTF-8……真是让人眼花缭乱,不知所措。花了一个下午的时间,终于大致弄明白了它们之间的渊源,现在把我所理解的写下来。当然了,这只是我个人的理解,也不一定全部都是正确的,如果对某些内容有怀疑,可以查看参考网页,网址在最后面给出。字符编码首先应该明确一下什么是字符编码(Encodin... 阅读全文
posted @ 2010-05-04 22:33 Zplutor 阅读(1270) 评论(0) 推荐(0) 编辑
  2010年4月5日
摘要: Win7的游戏浏览器是一个不错的特性,它不仅可以显示游戏的完整信息,更重要的是可以开辟一个新的空间,将众多的游戏集中到一起,整整有条。不过这个游戏浏览器有一个很大的缺点,它只支持微软预定义游戏列表中的游戏,在这些游戏第一次启动时,Win7会自动把这些游戏添加到游戏浏览器中。而对于那些不在列表中的游戏,需要手动将游戏的可执行文件拖动到游戏浏览器中进行添加。也许这不是问题,但是手动添加的游戏在游戏浏览... 阅读全文
posted @ 2010-04-05 18:14 Zplutor 阅读(7308) 评论(11) 推荐(1) 编辑
  2010年3月27日
摘要: ACM在线判题系统所使用的判题程序要求有很高的安全性,因为判题程序需要运行用户提交上来的代码,而用户会提交什么样的代码是无法预知的。判题程序首先要把用户的代码编译成可执行文件,然后运行这个可执行文件(本文姑且称之为解题程序),所以判题系统的安全性主要是限制解题程序的行为,阻止它执行危险的操作。我们可以列举出以下的安全目标(各项之间可能有重复):1. 阻止解题程序访问文件系统。2. 阻止解题程序访问... 阅读全文
posted @ 2010-03-27 12:55 Zplutor 阅读(1907) 评论(1) 推荐(1) 编辑
  2010年1月5日
摘要: 经过12月份的奋斗,OJ的判题程序已经初具雏形了,不过安全性仍然是一个令我非常头疼的问题,在这个问题上几乎耗了半个月的时间。虽然还没有找到完美的解决方法,但总算了解了Windows的安全性是如何工作的。下面分享一下在这方面的心得。首先说一下Windows中的访问控制模型(Access Control Model),它是Windows安全性的基础构件。访问控制模型有两个主要的组成部分,访问令牌(Ac... 阅读全文
posted @ 2010-01-05 20:55 Zplutor 阅读(4194) 评论(1) 推荐(3) 编辑