2010年11月28日星期日

程序员间的一段对话(笑话)

今天来一个笑话,以下笑话是由网络很多的段子融合而成,感谢这些段子的原创。
老鸟程序员A和新进的菜鸟程序员B在茶水间聊天。
程序员A:昨晚去看了《盗梦空间》,其实,编剧是个程序员。嵌套,函数,调用,断点,溢出,全局变量,未处理的例外。
程序员B:你还真行,看《盗梦空间》还可以想到编程。
程序员A:生活中很多地方都可以学习编程,譬如说,如果每天定时看新闻联播,能学到好多设计模式。
程序员B:哇... ...还真是。
程序员A:我那天看到我们的经理在用google docs写小金库账本呢,你知道为什么呢?
程序员B:难道是因为google docs简单方便?
程序员A:No,No,真正的原因是有GFW守卫,不易被老婆发现,哈哈。
程序员B:哇... ...哈哈。
程序员B:对了,刚刚经理说我们一定要用正版的软件,国家刚刚颁布下了一条法律呢。
程序员A:没关系啦,其实中国的法律从来都是.txt格式,不是.exe。
程序员B:说的也是。
程序员A:给你打听一下,你知不知道昨天来我们部门的和你帮你填出差报销表的财务部的漂亮mm的叫什么名字,电话是什么。
程序员B:不知道,没敢问。
程序员A:你居然没有问,连名字都不知道,你大概认识的多数女性后缀名都是AVI,哈哈。
程序员B:沉默中... ..
程序员A:你一定已经默默地关注了苍井空的微博,哈哈。
程序员B:哇,是的... ...
程序员A:对了,最后告诉你一个搞笑的内幕,你知道Intel为什么买下McAfee。其实内幕是这样的:Intel的CEO坐在办公椅上边吃巧克力豆,边和下属视频会议,说道:「公司是不是需要杀毒软件?买McAfee吧。」15分钟后,有人在视频那头传话,「McAfee买下了。」CEO问道,「什么版本的?」下属:「啊?版本?…版本?」
程序员B:哈哈。

 

 

最后附带,简单地说说最近的一些情况吧。

stefan-morsch-stiftung
星期二,我和一些朋友参加了Stefan-Morsch基金会(这个基金会在德国已经建立了38万人的骨髓资料库)在我们学校的活动(我们所的一个中国博士生患了白血病,急需骨髓捐赠),抽取5毫升静脉血作组织相容性抗原(HLA)分型检查。http://www.stefan-morsch-stiftung.com/

DSC01888
星期四我们这个小城下了今年第一场雪,图为晚上7点半回家小路上的雪景。
DSC01907

星期六也就是昨天,和几个朋友逛了圣诞市场,吃了一点烧烤和炒栗子,图为烧烤的摊位。然后到一个同学家玩三国杀,比较有趣的是我们还教会了一个德国人玩三国杀,而且后来他作为“主公”还玩的相当不错,其实桌面游戏在欧洲很有群众基础,很多德国人从小就玩过很多这样的游戏。

2010年11月18日星期四

如何自动将Visual Studio编译生成的dll和lib文件放置到不同的路径中

又是很久没有更新博客了,最近相对比较忙,做了一个项目代码重构,已经完成了8成了。今天给自己放假一天,这就是在研究所上班的最大好处之一,很自由,可以给自己放假:-)
今天写一点关于Visual Studio使用的一个小技巧。
Visual Studio编译生成的dll和lib文件放置到不同的路径中,其实很有用,如果我们有很多的项目,而且项目间的dll相互依赖,那么将编译生成的dll和lib文件放在统一的路径或目录中还是很方便的。
以下是我的做法,我们需要先写一个bat。
以下是copy_output.bat的写法,类似这样:

@echo copying file(s)
@echo off
REM @echo on
@REM echo %1\%2
@REM dir /p %1\%2.dll
@REM copy the exe file, if exists
if exist %1\%2.exe for /F "eol= tokens=4,4,* delims= " %%X in ('dir /p %1\%2.exe') do if exist %1\%%X copy %1\%%X %YOUR_BIN_PATH%
@REM copy the dll file, if exist
if exist %1\%2.dll for /F "eol= tokens=4,4,* delims= " %%X in ('dir /p %1\%2.dll') do (if exist %1\%%X copy %1\%%X %YOUR_BIN_PATH%)
@REM copy the lib file, if exists
if exist %1\%2.lib for /F "eol= tokens=4,4,* delims= " %%X in ('dir /p %1\%2.lib') do (if exist %1\%%X copy %1\%%X %YOUR_LIB_PATH%)

我们还要在Visual Studio的project的属性进行一点设置,具体如下截图所示(我使用的是德文版的VS):
vs2005_dll_lib_build_event

点选进入Build Events,在Post-Build Event的Command Line中输入copy_output.bat $(TargetDir) $(TargetName),完成。


附注:如果路径上有空格譬如,C:\Program Files,那么要在$(TargetDir)上加入引号。
copy_output.bat "$(TargetDir)" $(TargetName)