VS2013下使用QT和MFC的錯誤解決方案

2021-08-14 04:30:30 字數 3151 閱讀 8955

1. error c4996: 'fopen': this function or variable may be unsafe.

做法可參照:

2. error c2664: 「int getkeynametextw(long,lpwstr,int)」: 無法將引數 2 從「char [80]」轉換為「lpwstr」

做法:設定下工程屬性,設為多位元組。 工程屬性--general--characterset---usemulti-bytecharacterset

3.error c3861: 「modulefromaddress」:  找不到識別符號

做法:該識別符號未宣告定義,需宣告定義該識別符號;

4.error c2660: 'loadlibrarya' : function does not take 2 parameters

做法:引數錯誤,檢查引數原型,檢視引用是否正確

5.error msb8031: building an mfc project for a non-unicode character set is deprecated.

做法:缺少乙個mfc外掛程式

參照6.error c2039: 「imagedirectoryentrytodata」: 不是「`global namespace'」的成員

新增:以下兩行**

#include

#pragma  comment (lib, "imagehlp")

7.intellisense:  未定義識別符號 "_countof"

新增以下兩行**:

#include

8.error c1189: #error :  need to include strsafe.h after tchar.h

在stdafx.h檔案中新增#include

9.error c2733: 「setsyshook」: 不允許過載函式的第二個 c 鏈結

原因:extern "c" __declspec(dllexport),以c的方式,即不支援過載,所以**中有匯出函式的引數不同,修改即可

10.error lnk1201: 寫入程式資料庫「e:\chf_yjy's_work\work5\procress\hookterminateprocess\debug\hookterminateprocess.pdb」時出錯;請檢查是否是磁碟空間不足、路徑無效或許可權不夠

做法:開啟專案屬性–>鏈結器–>除錯,去掉除錯資訊,乾掉pdb檔案,以後不依賴pdb就好了。但是這樣你就等於閹割了vs的除錯功能,果然是欲練此功必先自宮呀。(需要更好的辦法。。。。。。)

修正:將原debug資料夾或release資料夾刪除重新生成解決方案即可

error lnk1104: 無法開啟檔案「debug\\print.ilk」

做法同上。

11.error c2440: 「初始化」: 無法從「const char [20]」轉換為「wchar_t」

參照以下**:

wchar_t user = l"administrator"; 

12.error c1853: 「debug\mymhook.pch」預編譯標頭檔案來自編譯器的早期版本,或者預編譯頭為 c++ 而在 c 中使用它(或相反)

做法:可將該專案屬性-》c/c++-》預編譯頭,中的預編譯頭選項設定為空

可參照:

13.warning c4819: 該檔案包含不能在當前**頁(936)中表示的字元。

做法可參照:

從qt的安裝目錄中的:\qt\qt325.5.1\5.5\msvc2013\plugins\platforms目錄拷貝出qwindows.dll(release)[或qwindowsd.dll(debug)],放到exe的platforms目錄下

14.error c2440: '=' : cannot convert from 'const char [xx]' to 'char *'

可以這樣做:

feeble = (char*)malloc(sizeof(""));

strcpy(feeble, "");

15.error c2375: 'wsaasyncgethostbyaddr' : redefinition; different linkagec:\program files (x86)\windows kits\8.1\include\um\winsock2.h

重複包含了標頭檔案winsock2.h,去除這一條include語句即可               

16.error c1083:cannot open source file:.......moc_***.cpp

***.cpp中可能存在非法字元如下劃線等,需將相應檔案重新命名

17.error c4430: missing type specifier - int assumed. note: c++ does not support default-int

error c2143: syntax error : missing ',' before '&'

以上兩個錯誤一同出現,原因是我在傳參時 乙個引數為class aaa,然而 我包含了相應的標頭檔案 卻沒有在使用之前 進行class aaa;的宣告

操作:即使用前宣告該類

18.在vs2008中生成時出錯:error c4430: missing type specifier - int assumed. note: c++ does not support default-int

這是因為在vc6中,如果沒有顯示的指定返回值型別,編譯器將其視為預設整型。但是vs2005不支援預設整型。

解決方法如下:

開啟:專案----專案屬性----配置屬性----c/c++----命令列,在附加選項那裡新增/wd4430這個選項。(參考自

mongo c driver使用VS2013編譯

git clonegit clone mongo c driver win64 bin.7z 這裡先需要使用cmake工具來生成vs2013的專案檔案。如果沒有安裝cmake,請先安裝。進入mongo c driver src libbson目錄,開啟命令列視窗,執行以下命令 mkdir msvc1...

vs2013下使用opencv靜態庫

使用vs2013和opencv進行影象處理程式的開發,當把程式放到一台沒有安裝opencv的電腦上執行的時候,需要重新安裝opencv程式才能執行,這樣會顯得很麻煩,使用opencv提供的靜態鏈結庫可以避免這個麻煩。參考了一些網上的教程,都死通過自己編譯opencv獲取靜態庫的,實際上opencv的...

VS2013下的CButtonST的使用

步驟 按網上教程先將四個檔案複製到工程下,然後在vs2013中新增現有項將 include btnst.h 加入到stdafx.h中,此處注意,要將它放置在 include mfc 對 windows 公共控制項的支援的後面。否則會出現如下錯誤 error c2079 cbuttonst m too...