vs典型問題(轉)

add/remove operation is read only

緣由:這個時候只要關閉工程,刪除ncb文件和suo文件,打開工程,待Intellisesnce update完畢後,添加消息響應代碼。linux

代碼不能設置斷點

 緣由:是Release版本或者選中Require source files  to exactly match the original  version。c++

vc2005如何添加虛函數 

 緣由:好比給對話框類CDesktopCapDlg添加虛函數PreTranslateMessage,先在「Class View」中選中CDesktopCapDlg,再到"Properties"打開「Overrides"。數據庫

ERROR LNK 2005

 緣由: 全局變量重複定義,庫版本衝突,好比:multi編碼跟Uicode編碼;/MD, /ML, /MT, /LD之間的衝突。windows

error LNK2011: precompiled object not linked in; image may not run

問題發生環境:A.exe 依賴B.lib,B.lib 依賴C.lib,B.lib 和C.lib 都是靜態庫。設置:A->B, B->C (->表示依賴),這種狀況下,若是A/B/ C工程都在一個解決方案下,則沒問題。若是將C工程移除,而後讓B工程連接C.lib, (也就是A->B,B->C, A,B 在同一解決方案下,C則直接用靜態庫C.lib),則出現error LNK2011錯誤。解決方法:A->(B,C)------就是A直接連接到B.lib和C.lib,B最好在C的前面。ide

沒法打開文件"LIBC.lib"

在「配置屬性->連接器->輸入->忽略特定庫」後填入「LIBC.lib / libcp.lib 」。函數

MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMainX16 referenced in function ___tmainCRTStartup

你用vc建了一個控制檯程序,它的入口函數應該是main, 而你使用了WinMain.解決方法:
若是入口函數是WinMain,工具

1.進入project->setting->c/c++, 在category中選擇preprocessor,在processor definitions中刪除_CONSOLE, 添加_WINDOWS測試

2.進入project->setting->Link, 在Project options中將 /subsystem:console改成/subsystem:windows.優化

3.保存設置,Rebuild All.ui

 vc Performing Custom Build Step 系統找不到指定的路徑

缺乏源文件夾。

Project : error PRJ0002 : Error result 31 returned from 'C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\mt.exe'.
解決方法:Properties ==> Configuration Properties ==> Linker ==> Manifest File, set Generate Manifest to No.
microsoft incremental linker已中止工做

解決辦法:項目->屬性->連接器->常規 下面的「啓用增量連接」,將「是(/INCREMENTAL)」改成「否(/INCREMENTAL:NO)」。
不過這又引入了另一個警 告:FormatCom.obj : warning LNK4075: 忽略「/EDITANDCONTINUE」(因爲「/INCREMENTAL:NO」規範)
選擇項目,屬性->配置屬性 ->C/C++,修改「調試信息格式」爲「程序數據庫(/Zi)」便可。

64位平臺下,VC6調試運行程序,中斷調試沒法退出 .

問題描述:
當點擊F5開始一個項目的調試時,程序在設置的斷點處中止,這時按下Shift+F5後,vc6能夠退出調試狀態,可是WINDOWS系統的任務欄上會留下前面調試時產生的進程圖標。該進程不能被結束,即便使用任務管理器,也不能夠。這時若是再次按下F5調試,並按下Shift+F5後,任務欄上會留下兩個這樣的圖標,這兩個進程均可以在任務管理器上看到,不佔CPU資源,但佔用必定的內存。結束該進程的惟一的辦法是(在任務欄上去掉該圖標):關閉VC6,並從新開啓.
通常的解決方法:
不使用"結束調試"這個功能,讓程序正常結束(就是放個能夠退出的菜單或者按鈕, 而不是使用Shift+F5的退出)。
終極解決方法:
替換DM.dll和TLLOC.DLL爲正確的版本。首先下載正確版本:VC6.zip(裏面包含這兩個dll,地址爲:http://download.csdn.net/detail/evsqiezi/6518315),而後將下載的版本替換到程序安裝目錄「Common/MSDev98/Bin/TLLOC.dll」和「Common/MSDev98/Bin/DM.dll」,這樣VC6在windows 7 64位的系統調試時,就能夠任意退出了。

vc2008下,Microsoft(R) C/C++ 優化編譯器 遇到問題須要關閉的解決辦法

         編譯的語句有問題,如: printf("Connect suc ip:%s,Handle:%d\n",a(int 型),b(char*型));就會致使此類問題。通過最新測試發現:原來是VC8(VS2005)的項目默認屬性有開/Wp64 (檢測64位可移植性問題),在VC9(VS2008)下面,若是仍然打開/Wp64編譯選項,那麼遇到上述這種代碼編譯器就會崩潰,若是在項目屬性裏禁止"檢測64位可移植性問題"(/Wp64 )這個選項,則編譯就能夠正常經過,編譯器不會崩潰。不過代碼寫的也有問題,優先改代碼。

error C3163: 「_vsnprintf」: 屬性與之前的聲明不一致   //2013 12

_vsnprintf被重複定義。

error LNK2005: _DllMain@12 已經在 MSVCRTD.lib(dllmain.obj) 中定義

_DllMain@12 已經在 MSVCRTD.lib(dllmain.obj) 中定義
  VC2005解決辦法:
1)Debug版本:
項目-屬性-連接器-輸入:忽略特定庫中輸入mfc80d.lib;mfcs80d.lib
項目-屬性-連接器-附加依賴項:mfc80d.lib;mfcs80d.lib
  就能夠保證mfc80d和mfcs80d先於MSVCRTD.lib連接,OK,成功
2)Release版本
  與Debug版本不一樣在於mfc80.lib;mfcs80.lib

warning LNK4070: .EXP 中的 /OUT:WebCamAdapter.dll 指令與輸出文件名「W

修改輸出文件的文件名,須要在.def文件裏也更名字,不然不識別生成的DLL。

ossl_typ.h(178) : error C2143: 語法錯誤 : 缺乏「)」(在「常量」的前面)

定義的變量跟宏重名了,修改便可。

msvcrtd.lib(crtexe.obj) : error LNK2001: unresolved external symbol _main
緣由:控制檯在DMD下沒寫main函數。

 error C2061: syntax error : identifier 'HMONITOR'

#ifndef WINVER            
#define WINVER 0x0500        
#endif 
#define _WIN32_WINDOWS  0x0500 
#define _WIN32_WINNT    0x0500

linux expected initializer before ‘class’

通常是前面語法錯誤,如少分號。

項目文件包含 ToolsVersion="12.0" 設置,但此工具集未知或缺失。您能夠經過爲此工具集安裝相應的 .NET Framework 來解決此問題。將項目視爲具備 ToolsVersion="4.0" 設置。

工程跟VS版本不符合,在「屬性」->「平臺工做集」,改爲當前的VS版本。

error LNK2038 RuntimeLibrary 不匹配的解決

在工程上右鍵-》屬性-》c/c++-》代碼生成-》運行庫,修改便可,由於所選的工程運行庫選擇錯誤致使的。

 

轉載自博客:http://m.blog.csdn.net/blog/evsqiezi/8313956

相關文章
相關標籤/搜索