我在除錯別人的程式,移植到我的vs2010和win7里面發現丟失各種.dll檔案,我先是在網上下載了mfc90ud.dll放在system32中(本機在system32檔案夾里只發現了mfc100和mfc110以上的.dll,不知道是什么原因),后來接著下載了各種如coredll.dll,mmvcp70.dll,mmvcr70.dll……最后終于除錯成功了,生成相應的exe檔案,但是打開的時候顯示:無法定位序數999于元件COREDLL.dll,又在網上下載了另外的COREDLL.dll(但是感覺和之前的是一樣的,因為時間和大小都相同),替換之后發現還是一樣的,不知道COREDLL.dll有什么用,為什么不能運行?
uj5u.com熱心網友回復:
使用靜態鏈接程式。。uj5u.com熱心網友回復:
什么意思呀?怎么使用靜態鏈接程式?
uj5u.com熱心網友回復:
我把運行庫改為MT或者MTD都出現錯誤:
d:\2010vs\vc\atlmfc\include\afxver_.h(81): fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
連編譯都沒成功,只能用MD或者MDD呢
uj5u.com熱心網友回復:
還要 專案屬性——常規——MFC的使用:在靜態庫中使用MFC
uj5u.com熱心網友回復:
使用靜態鏈接程式。。
我把運行庫改為MT或者MTD都出現錯誤:
d:\2010vs\vc\atlmfc\include\afxver_.h(81): fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
連編譯都沒成功,只能用MD或者MDD呢
還要 專案屬性——常規——MFC的使用:在靜態庫中使用MFC
那我自己重新編譯的.lib和.dll是不是都得改成在這個靜態庫中重新編譯,再加載到該專案中
uj5u.com熱心網友回復:
使用靜態鏈接程式。。
我把運行庫改為MT或者MTD都出現錯誤:
d:\2010vs\vc\atlmfc\include\afxver_.h(81): fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
連編譯都沒成功,只能用MD或者MDD呢
還要 專案屬性——常規——MFC的使用:在靜態庫中使用MFC
還是不行呢,出現這個錯誤:error LNK2005: "public: static class CWnd * __stdcall CWnd::FromHandle(struct HWND__ *)" (?FromHandle@CWnd@@SGPAV1@PAUHWND__@@@Z) 已經在 mfc90ud.lib(mfc90ud.dll) 中定義
看網上的回答是需要換成元件。我仔細看了一下coredll.dll,在命令提示符中準備注冊一下:出現這個錯誤
uj5u.com熱心網友回復:
@趙4老師 ,@paschen ,@zgl7903 ,老師們 ,求解~uj5u.com熱心網友回復:
用dumpbin.exe /EXPORTS coredll.dll
命令查看coredll.dll匯出的函式串列及其各匯出函式對應的序數
《Windows核心編程》
http://www.dllzj.com
uj5u.com熱心網友回復:
用depends.exe查看exe和dll依賴的其它dll及其版本號。在64位Windows下:
64位exe和dll在目錄c:\windows\system32目錄下;
32位exe和dll在目錄c:\windows\syswow64目錄下;
所以要注意:
在win64位系統下注冊32位ocx或dll需要將32位ocx或dll拷貝到c:\windows\syswow64\目錄下。
且注冊要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/120623.html
標籤:進程/線程/DLL
