vc使用jsoncpp標頭檔案衝突問題

2021-07-10 17:43:42 字數 2023 閱讀 7907

編譯時出現

1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xdebug(32) : warning c4229: 使用了記時錯誤 : 忽略資料上的修飾符

1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xdebug(32) : error c2365: 「operator new」: 重定義;以前的定義是「函式」

1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xdebug(32) : error c2078: 初始值設定項太多

1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xdebug(32) : error c2440: 「初始化」: 無法從「int」轉換為「void *」

1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xlocale(343) : error c2227: 「->_name」的左邊必須指向類/結構/聯合/泛型型別

1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xlocale(343) : error c2228: 「.c_str」的左邊必須有類/結構/聯合

1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xlocale(344) : error c2065: 「_cat」: 未宣告的識別符號

1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xlocale(344) : error c2065: 「_other」: 未宣告的識別符號

1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xlocale(344) : error c2228: 「._ptr」的左邊必須有類/結構/聯合

1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xlocale(344) : fatal error c1003: 錯誤計數超過 100;正在停止編譯

jsoncpp的**拿著好久了,一直不能加入到自己庫,總出現這些錯誤,一直沒搞明白怎麼回事

今天無意中發現是debug版本中是new在作怪

#ifdef _debug

#define new debug_new

#endif

搞的好糾結的,印象中試過幾次 都沒找著問題,哎..

解決方式如下:修改json.h

#ifndef json_json_h_included

# define json_json_h_included

#ifdef new

#define redefine_new

#undef new

#endif // new

//# include "autolink.h"

# include "value.h"

# include "reader.h"

# include "writer.h"

# include "features.h"

#ifdef redefine_new

#define new debug_new

#endif // redefine_new

#endif // json_json_h_included

先取消new的debug_new巨集定義,尾巴上再重新定義巨集,完美解決呀..

得養成好習慣,標頭檔案中不能寫的**不能寫... 我是有個模板類的標頭檔案中使用了debug_new巨集,沒法

vc 標頭檔案

今天看vc 的內容,我使用的是vs2008版,編寫第乙個程式的時候在標頭檔案這裡遇到了問題,編譯時說無法開啟檔案,然後上網搜了一下,注意這裡 include是在舊的標準c 中使用。在新標準中,用 include。iostream 的意思是輸入輸出流。include是標準的c 標頭檔案,任何符合標準的...

關於VC 的標頭檔案

以下出自 effective c 懾於被激怒的程式設計師會產生的破壞力,標準 委 員會決定為包裝了std的那部分標準庫構件建立新的頭檔名。生成新標頭檔案的方法僅僅是將現有c 頭檔名中的 h 去掉,方法本身不重要,正如最後產生的結果不一致也並不重要一樣。所以變成了,變成了,等等。對於c頭 檔案,採用同...

使用jsoncpp解析 json檔案

官方提供的整合方案 編譯jsoncpp.sln,生成debug lib json.lib release lib json.lib.將生成的.lib和整個include json資料夾拷貝到自己的專案中,在呼叫時,配置相關屬性。屬性配置時,注意c c 生成 執行庫的選擇 多執行緒除錯 mtd 和 多...