VS2010 正則批量替換標頭檔案路徑

2022-04-16 09:51:16 字數 949 閱讀 6363

最近在專案實踐中,需要統一對工程標頭檔案進行重構,具體要求是,將之前 #include 「../../abc/def.h」 類似的標頭檔案引用路徑 替換為#include 「def.h」 之類的。由於工程檔案很多,如果全部手動來乙個乙個的替換,顯然是不現實的,這就需要利用正規表示式來批量替換標頭檔案路徑。

針對專案中 多種多樣的標頭檔案包含路徑 ,有 ./abc.h ,有 .\abc.h,有 ..\abc.h,有..\..\abc.h之類的多種多樣的標頭檔案包含風格,需要統一風格,更改為 #include 「abc.h」這種方式。

整體採用正則全域性替換的方法,針對一些在不同物理目錄下有相同檔名包含的情況,要特別處理。例如,在 def目錄和comm目錄下,都有 abc.h標頭檔案,在這種情況下,如果對應標頭檔案包含路徑為 #include 「def/abc.h」,正則替換會將其改為 #include 「abc.h」,那麼,有可能編譯器會去comm目錄下面去找abc.h,而不是原來的def目錄,這就不是我們想要的結果。發生這種情況的原因是,設定vs標頭檔案搜尋路徑時,有先後順序的,這個先後順序由自使用者自定義順序來決定,具體設定位置如下圖:

下面來介紹,針對一般情況下的標頭檔案路徑替換,我的開發環境是vs2010,以下介紹的方法,僅在2010上面測試驗證過,不同版本的vs正則有可能有區別,在此僅供參考。

為了避免正則替換掉程式正文中可能出現的字串,需要開頭匹配#include,這是非常重要的,我就是因為之前沒有這樣做,採用 「..//」正則來替換,結果修改程式正文的字串,後續的查詢修正非常繁瑣。

具體的替換方法,在上圖中,已經寫的很詳細,可以參考

visual studio 2010中用正規表示式查詢 。

在VS2010下如何使用標頭檔案unistd h

fatal error c1083 cannot open include file unistd.h no such file or directory,所以必須把這個標頭檔案加入到vs2010的標頭檔案庫裡面,其它的編譯器也是如此,對於vs2010來說只要在你的預設庫資料夾下 我的電腦是c pr...

VS2010新增配置檔案

也許初學者會疑惑,我們 d層直接使用資料庫連線字串很簡單的就可以實現連線資料庫 為什麼還要用配置檔案來連線資料庫呢 原因就是 在配置檔案中的資訊相當於全域性變數,如果有修改只要改動配置檔案的鍵值就可達到全域性修改的效果,無需編譯 修改起來更為便捷 下面是新增配置檔案連線資料庫的基本步驟 1.首先需要...

VS2010生成檔案

resource.h resource.h就是.rc檔案的標頭檔案 rc檔案裡的常量全在resource.h定義 rc檔案和resource.h 都是給project add resource 的時候vs 自動生成的。vcxproj 這是使用應用程式嚮導生成的 vc 專案的主專案檔案。它包含生成該檔...