C 編譯常見錯誤

2022-07-02 04:27:13 字數 1281 閱讀 3818

error c4996: 'fopen': this function or variable may be unsafe. consider using fopen_s instead. to disable deprecation, use _crt_secure_no_warnings. see online help for details.

我像往常一樣加了#define  _crt_secure_no_warnings,不知為啥,這次這樣做不管用了。

1.編譯我的工程時候,出現

fatal error c1010: unexpected end of file while looking for precompiled header directive

解決方法:

在檔案開頭新增:

#include "stdafx.h"

2.'cdatastream::getbytes' : illegal call of non-static member function

原因:cdatastream::getbytes靜態成員函式才可以這樣呼叫,這是由於不小心所致。

3.vc++中,提示cannot add new member的解決方法

當我們為對話方塊上的控制項新增事件響應函式時,出現cannot add new member 這樣的提示資訊。

解決方法:

將所有自動生成的檔案clean掉,關閉工程,重新啟動,並build all

4.lnk2001:unresolved external symbol 「symbol」

一般來說,發生錯誤的原因有兩個:

(1)所引用的函式、變數不存在、拼寫不正確或者使用錯誤;

(2)可能使用了不同版本的鏈結庫。

我遇到的情況有以下幾種:

(1)所使用的函式名拼寫錯誤

(2)所使用的函式的引數與自己編譯並使用的lib庫不一致。

5.expression:_block_type_is_valid(phead->nblockuse)

問題產生原因:

1.記憶體洩漏;所以當程式退出時,系統會收回分配的記憶體,於是調析構函式,由於記憶體已被錯誤地釋放,於是就會出現「debug assertion failed」的錯誤。

2.這個assert說明什麼問題呢?說明有一塊內存在被釋放的時候,它的頭部裡面的資訊已經被改掉了,和預期的不一樣。記憶體分配的程式往往在被分配出的記憶體塊頭部放上一些校驗資訊。這個資訊記憶體的使用者是不知道也不應該修改的。這樣,在記憶體被釋放的時候,記憶體分配程式就可以驗對這個頭部資訊是否被改過了。若被改過,就說明發生了記憶體corruption.

C 常見編譯錯誤集

09 07 22 編譯ffdshow 無svn 080822出現如下錯誤 ffdshow error prj0019 工具從 increasing build version.解決方法 先編譯verinc工程,再編譯ffdshow,即可.09 07 24 winsock2.h與winsock.h相互...

核心編譯常見錯誤

1 ubuntu10.04下編譯linux 2.6.12執行make menuconfig時提示錯誤 unable to find the ncurses libraries.you must install ncurses devel in order to use make menuconfig...

常見編譯鏈結錯誤

1.no such file or directory 首先檢查檔案路徑是否包含,如某標頭檔案不存在,一般是標頭檔案的路徑沒有include進來 其次檢查是否有巨集定義,巨集定義是否已生效。2.in function undefined 一般是鏈結錯誤,所需的的庫沒有鏈結編譯bin檔案時,鏈結了動態...