溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

error C2440: “static_cast”: 無(wú)法從“void (__thiscall CMainFrame::* )

發(fā)布時(shí)間:2020-07-14 18:48:52 來(lái)源:網(wǎng)絡(luò) 閱讀:2391 作者:WZM3558862 欄目:編程語(yǔ)言

 

在VC++6.0向?qū)е型瓿身?xiàng)目遷移到VS2012版的錯(cuò)

編譯時(shí)遇到兩個(gè)問(wèn)題,首先是

error C2440: “static_cast”: 無(wú)法從“void (__thiscall CMainFrame::* )(BOOL,HTASK)”轉(zhuǎn)換為“void (__thiscall CWnd::* )(BOOL,DWORD)”

1>          從基類型到派生類型的強(qiáng)制轉(zhuǎn)換需要 dynamic_cast 或 static_cast

error C2664: “CWnd::OnActivateApp”: 不能將參數(shù) 2 從“HTASK”轉(zhuǎn)換為“DWORD”;

一行行的改,第一個(gè)是在CMainFrame中沒(méi)有對(duì)消息映射ON_WM_ACTIVATEAPP()處理,這是因?yàn)榈诙€(gè)錯(cuò)誤引起的,因?yàn)楝F(xiàn)在VS2012中把函數(shù)中聲明了的HASK的類型是DWORD,把CMainFrame::OnActivateApp(BOOL bActive, HASK hTask)中的它改成DWORD就可以了,聲明中也要改回來(lái),CMainFrame::OnActivateApp(BOOL bActive, DWORD hTask),這樣消息映射才對(duì)應(yīng)。

改完后還有一個(gè)經(jīng)常出現(xiàn)的

1>AppLog.obj : warning LNK4075: 忽略“/EDITANDCONTINUE”(由于“/SAFESEH”規(guī)范)
1>GLAUX.LIB(p_w_picpath.obj) : error LNK2026: 模塊對(duì)于 SAFESEH 映像是不安全的。
1>GLAUX.LIB(tkp_w_picpath.obj) : error LNK2026: 模塊對(duì)于 SAFESEH 映像是不安全的。
1>GLAUX.LIB(tkdib.obj) : error LNK2026: 模塊對(duì)于 SAFESEH 映像是不安全的。
1>GLAUX.LIB(tk.obj) : error LNK2026: 模塊對(duì)于 SAFESEH 映像是不安全的。
1>.\Debug\OpenGL.exe : fatal error LNK1281: 無(wú)法生成 SAFESEH 映像。

這是安全性問(wèn)題,

解決方案,是繞過(guò)safeshe驗(yàn)證,方法是這樣的

解決方法:

1.打開(kāi)該項(xiàng)目的“屬性頁(yè)”對(duì)話框。

2.單擊“鏈接器”文件夾。

3.單擊“命令行”屬性頁(yè)。

4.將 /SAFESEH:NO 鍵入“附加選項(xiàng)”框中,然后點(diǎn)擊應(yīng)用


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI