4日:
查看項(xiàng)目鏈接庫(kù)的詳細(xì)信息。
在鏈接的其它選擇項(xiàng)中設(shè)置 “/verbose:lib ”,就可以看到鏈接時(shí)搜索庫(kù)的順序,可以判斷出函數(shù)重復(fù)的細(xì)節(jié)。
5日:
關(guān)于strcat_s(char *
strDestination, size_t
numberOfElements, const char *
strSource)的誤區(qū)。
numberOfElements,表示strDestination緩沖區(qū)空間大小,而不是指可以放下strSource區(qū)的大小。
關(guān)于strcpy_s(char *pdest, size_t destSize, char *src) 在src的字串長(zhǎng)度大于destsize時(shí)也會(huì)報(bào)錯(cuò)。
9日:
關(guān)于
CMultiDocTemplate->CreateNewFrame失敗。
在工程中要新增一種視圖,添加MFC類分別繼承于
CMDIChildWndEx和CView類,但是在調(diào)用上述方法打開(kāi)窗口時(shí)失敗。經(jīng)過(guò)跟蹤來(lái)到CDocTemplate::CreateNewFrame方法,
CFrameWnd* pFrame = (CFrameWnd*)m_pFrameClass->CreateObject();
if (pFrame == NULL)
{
TRACE(traceAppMsg, 0, "Warning: Dynamic create of frame %hs failed.\n",
m_pFrameClass->m_lpszClassName);
return NULL;
}
提示動(dòng)態(tài)創(chuàng)建框架失敗,打新建的CMDIChildWndEx子類,其中的宏為DECLARE_DYNAMIC把它改為DECLARE_DYNCREATE方式。再運(yùn)行程序一切就可以了。
22日:
_DllMain重定義問(wèn)題(托管與非托管共存)
一個(gè)混合的MFC程序,使用托管與非托管的MFC正規(guī)DLL在鏈接時(shí)出現(xiàn)了下如下鏈接的錯(cuò)誤,錯(cuò)誤 2 error LNK2005:
_DllMain@12 已經(jīng)在
msvcrtd.lib(dllmain.obj) 中定 義 .......\mfcs100ud.lib(dllmodul.obj),于是在鏈接時(shí)指定mfcs1007d.lib優(yōu)先,但是也無(wú)濟(jì)無(wú)事。朋友發(fā)現(xiàn)
AFX_MANAGE_STATE(AfxGetStaticModuleState());僅只放在了托管的代碼文件中,沒(méi)有放到非托管的文件中。在非托管的文件中新建一個(gè)函數(shù)加入上面的語(yǔ)句,
再次編譯就可以了。