5日:
c/c++全局对象的初始化时机
c/c++全局对象的初始化时机,在很多书上都提了一句在进入main之前就会做好。在进入main之前可以是编译期、链接期和运行至main之前的运行期。究竟在哪个阶段恐怕和编译器有关
下面以vc2010编译器举例来说。
int g_i = 5; // 在编译链接期就把数据写全局数据区.
int geti(){ return time(null)/5;}//main之前的运行期
Student t;//main之前的运行期
7日:
7z打包
昨天,由于客户需要一个新开发项目来试用。仓促之时,也没有制作安装包就临时把用到的文件压缩一下发给客户了。结果,用户抱怨运行不了,因为少了几个VC10.0的动态链接库。
今天,我写了批处理文件来打包,批处理中用了7z.exe.
a 表示添加一个文件。如7z.exe a release.zip ".\vc10releasedll\*.*" ,就把当前vc10releasedll下的文件加进了release.zip压缩包中。
再如7z.exe a release.zip ".\release\abc.exe",就把release目录下的abc.exe文件加进了release.zip压缩包中。
d 表示删除压缩中的一个文件.如 7z.exe d release.zip *.ini,就会从release.zip中删除所有后缀为ini的文件.
l 表示列出其中的文件了.
8日:
基于MFC框架做的MDI程序,点击窗口菜单中的窗口命令时,弹出一个窗口管理的对话框。在有的电脑上显示的中文,而在有的电脑上显示的是英文。这个菜单项的命令ID宏
是ID_WINDOW_MANAGER,响应函数在CMDIFrameWnd中,名称是afx_msg void OnWindowManager()。一路跟踪该函数发现最终是打开CMFCWindowsManagerDialog
对话框,该对话框定义在MFC的资源中。至此事情已经明了。
到VC安装目录中的发布包目录,找出中文资源包mfc100chs.dll,放到运行程序的目录下。如此这般,弹出对话框就始终会是中文界面了。
29日:
定义一个结构体变量时,首先不要采用定义时带花括号的赋值。eg: Person p1={"kj",20....}这样的方式,其次紧接在定义后用memset对该变量进行清空>。
31日:
为一台笔记本电脑安装系统,有几个设备在其官方网站上始终没有找到相应的驱动。后来进入设备管理器在设备的详细信息属性页中查到了其对应VEN 和DEV值,
再到 http://www.pcidatabase.com/网站上检索到它对应的驱动。
为电脑做ghost时卡在了"adding MFT Table File to image"。原因是手动GHOST时,选择partion to image应该注意,如果目标分区是NTFS格式,则有真假分区之分,
真的是1.n的形式开头的,假的是以盘符如E:的形式出现的,必须选择真的1.n的形式开头的目标分区才能完成备份。