国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
VC2005程序在XP下出錯(cuò)的解決方法--●★黑客基地★●
這個(gè)問(wèn)題主要出現(xiàn)在XP環(huán)境下運(yùn)行由Visual C++2003/2005編譯的MFC程序時(shí)
問(wèn)題現(xiàn)象是XP運(yùn)行此類(lèi)程序時(shí),報(bào)錯(cuò)"由于應(yīng)用程序配置不正確,應(yīng)用程序未能啟動(dòng).重新安裝應(yīng)用程序可能會(huì)糾正這個(gè)問(wèn)題"
這個(gè)問(wèn)題似乎許多人遇見(jiàn)過(guò).在CSDN和微軟社區(qū)里面都有人提到.但是沒(méi)有完整的解決方案
這個(gè)問(wèn)題的解決一共會(huì)遇見(jiàn)2個(gè)子問(wèn)題

最早出現(xiàn)這個(gè)錯(cuò)誤我和許多人認(rèn)為的一樣
認(rèn)為是缺乏DLL庫(kù)文件導(dǎo)致.但是在測(cè)試機(jī)復(fù)制了DLL甚至安裝了.net framework 2.0以后
都無(wú)法解決問(wèn)題,最后確認(rèn)不是由缺乏DLL所致
因?yàn)槌绦蚴羌僿in32的應(yīng)用程,非托管代碼,所以也無(wú)需.net framework

Visual C++2003/2005默認(rèn)的MFC程序是使用動(dòng)態(tài)MFC庫(kù)(Use MFC in a Shared DLL)來(lái)鏈接的
而動(dòng)態(tài)MFC庫(kù)使用的是Multi-threaded DLL (/MD)
由于XP對(duì)于PE文件格式監(jiān)測(cè)更加嚴(yán)格.
就會(huì)導(dǎo)致部分使用多線程DLL的可執(zhí)行文件在調(diào)用的時(shí)候出錯(cuò)
修改項(xiàng)目屬性的編譯開(kāi)關(guān)
Project->Property->configuration Properties->C/C++->Code Generation->Runtime Library
修改成Multi-threaded (/MT)
修改了Runtime類(lèi)型以后
需要將MFC的編譯類(lèi)型也改成靜態(tài)庫(kù)
Project->Property->configuration Properties->General->Use of MFC
修改成Use MFC in a Static Library
一部分情況下在這步就能解決問(wèn)題
另外一部分情況會(huì)遇見(jiàn)如下情況
編譯器報(bào)錯(cuò)

CODE:
nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) already defined in libcpmt.lib(newaop.obj)
[Copy to clipboard]


產(chǎn)生這個(gè)問(wèn)題的原因是庫(kù)依賴(lài)關(guān)系
在Project->Property->configuration Properties->Linker->Command Line
加入編譯開(kāi)關(guān)/verbose:lib可以顯示詳細(xì)的庫(kù)鏈接順序
CODE:

------ Build started: Project: PerfMonDemo, Configuration: Release Win32 ------
Linking...
Searching libraries
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\pdh.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\lib\DelayImp.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\lib\libcpmt.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib\nafxcw.lib:
nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) already defined in libcpmt.lib(newaop.obj)
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\lib\libcmt.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\kernel32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\user32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\gdi32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\msimg32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\comdlg32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\winspool.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\advapi32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\shell32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\comctl32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\shlwapi.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\uuid.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\oledlg.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\ole32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\oleaut32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\urlmon.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\lib\OLDNAMES.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib\atls.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\ws2_32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\mswsock.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\oleacc.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\pdh.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\lib\DelayImp.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\lib\libcpmt.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib\nafxcw.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\lib\libcmt.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\kernel32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\user32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\gdi32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\msimg32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\comdlg32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\winspool.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\advapi32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\shell32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\comctl32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\shlwapi.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\uuid.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\oledlg.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\ole32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\oleaut32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\urlmon.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\lib\OLDNAMES.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib\atls.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\ws2_32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\mswsock.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\oleacc.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\pdh.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\lib\DelayImp.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\lib\libcpmt.lib:
Finished searching libraries
Searching libraries
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\pdh.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\lib\DelayImp.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\lib\libcpmt.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib\nafxcw.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\lib\libcmt.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\kernel32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\user32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\gdi32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\msimg32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\comdlg32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\winspool.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\advapi32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\shell32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\comctl32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\shlwapi.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\uuid.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\oledlg.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\ole32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\oleaut32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\urlmon.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\lib\OLDNAMES.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib\atls.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\ws2_32.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\mswsock.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\oleacc.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\pdh.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\lib\DelayImp.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\lib\libcpmt.lib:
  Searching d:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib\nafxcw.lib:
Finished searching libraries
.\Release/PerfMonDemo.exe : fatal error LNK1169: one or more multiply defined symbols found
Build log was saved at "file://d:\Dev\Performance Monitor\Release\BuildLog.htm"
PerfMonDemo - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
[Copy to clipboard]

我們發(fā)現(xiàn)在libcpmt.lib聲明過(guò)的operator new在nafxcw.lib中再次定義
解決方法如下
Project->Property->configuration Properties->Linker->Input->Additional Dependencies
加入
nafxcw.lib
libcpmt.lib
Project->Property->configuration Properties->Linker->Input->Ignore Specific Library
加入
nafxcw.lib
libcpmt.lib
這樣鏈接程序就不會(huì)先按照默認(rèn)順序來(lái)連接這兩個(gè)庫(kù)文件
而是在最后在加入對(duì)他們的引用.這樣就避免了這個(gè)問(wèn)題
下面是一張可能發(fā)生沖突的列表
若要使用此運(yùn)行時(shí)庫(kù) 請(qǐng)忽略這些庫(kù)
單線程 (libc.lib) libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
多線程 (libcmt.lib) libc.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
使用 DLL 的多線程 (msvcrt.lib) libc.lib、libcmt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
調(diào)試單線程 (libcd.lib) libc.lib、libcmt.lib、msvcrt.lib、libcmtd.lib、msvcrtd.lib
調(diào)試多線程 (libcmtd.lib) libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、msvcrtd.lib
使用 DLL 的調(diào)試多線程 (msvcrtd.lib) libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
編譯QT的mysql驅(qū)動(dòng) - - JavaEye技術(shù)網(wǎng)站
如何在命令行編譯執(zhí)行C++源文件 - 已解決 - 搜搜問(wèn)問(wèn)
Windows7使用Visual C++ 6.0 編程工具
解決:CS1668:“LIB環(huán)境變量中指定的搜索路徑C:\Program Files\Mi...
為VS2005安裝STLport
如何在windows中使用cmd命令去編譯,運(yùn)行C++程序
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服