1.今天遇到乙個很奇怪錯誤,不明白原因,c++程式設計,使用動態鏈結庫,工程a的某介面c由__declspec(dllexport)修飾,可以使工程b使用其介面。b工程屬於clr程式,在b工程裡有乙個類使用a的介面c時,在其標頭檔案開頭使用make_public(c),然後報錯:error lnk2022: metadata operation failed (80131195) : custom attributes are not consistent:(0x0c00040d)。本來__declspec(dllexport)修飾,外部工程已經可以使用,再用make_public的話,應該屬於重複使用,但是先前很多地方都這樣用過,但是一直沒報錯,忽然就開始報錯了。所以就將所有使用make_public的地方全部先註掉,至於原因,還沒想清楚。
續1:make_public(type),並不是重複使用,在.net呼叫clr託管時是必須要用到的,相當於__declspec(dllexport)的作用。至於錯誤的引起,是因為c++工程a裡,將原來定義的介面c的某個介面函式改為了實現類函式,從而導致的錯誤。為什麼會出現錯誤,還沒有找出原因。
2. 動態鏈結庫,斷點f11無法進入另乙個dll的函式體,原因是無法進入的這個函式所屬dll不是我當前正在除錯 所編譯的版本。
3. win7下通過dc文字顯示沒問題,但xp不顯示字或別的問題。dc->drawtext(,font,) ,dc->selectobject(font); 很可能是font出問題了。我的**裡font是這麼獲取的:
logfont lf;
zeromemory(&lf, sizeof(logfont));
nonclientmetrics nm;
nm.cbsize = sizeof(nonclientmetrics);
verify(systemparametersinfo(spi_getnonclientmetrics, nm.cbsize, &nm, 0));
lf = nm.lfmenufont;
lf.lfunderline = false;
m_defaultfont.createfontindirect(&lf);
原因是nonclientmetrics 在xp下可能有差異,不用這個結構體,直接用lf去獲取就ok了
4.犯了個低階錯了,if語句後面多了個分號,導致程式始終能進入if後面大括號裡的**。而我一直以為是if語句判斷出了問題。低階錯誤
生成修改記錄
生成修改記錄 使用方法 將source insight搜尋結果儲存為0829.txt 將該檔案儲存為 pl和0829.txt放在同一目錄下,雙擊執行 結果在生成的result.txt中 use strict my eachfile,line,output,prev,count,ret,prev pa...
DDOM修改記錄
1 完整多個類的clone方法,實現為clone deep false 形式 2 完整各個元素的clear 和destory 方法,但是還是存在一些隱患 第一,clear的行為不統一,存在只釋放列表還是子元素也釋放的不統一行為,為保整與舊 的相容性只能小心地改。3 提公升一些移除 所有 子元素操作的...
git檢視修改記錄
檢視檔案中每行 的最近一次修改人 git blame file name git blame git blame l 100,100 git blame l 100,10檢視最近兩次變動及其變動點 git log p 2顯示增改行統計 git log statgit log pretty 選項,可以...