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的形式開頭的目標分區才能完成備份。