最近想找一個開源軟件代碼來看看,突然發現notepad++是用c++寫的,因此下載下來看看源碼。
具體步驟如下:
1. http://notepad-plus-plus.org/ 下載最新版本的源代碼 npp.6.1.5.src.7z
解壓後有兩個目錄
npp.6.1.5.src\scintilla
npp.6.1.5.src\ PowerEditor
其中Notepad++就是基於Scintilla開發的。所以先編譯Scintilla 。
2.打開Visual Studio Command Prompt (2010),並cd到...\scintilla\win32目錄下;
執行如下命令:
nmake -f scintilla.mak NOBOOST=1
於是,相關文件就編出來了。生成的文件在\bin目錄下。得到Scintilla.dll。
3.然後打開PowerEditor\visual.net目錄下的工程文件,打開將其轉換爲2010的工程文件,
再將Scintilla.dll複製到該Debug文件內或\bin內
然後編譯鏈接。
問題:很多頭文件找不到,比如 FindCharsInRange.h。
解決方法:include的時候要加上頭文件所在文件夾,比如 #include "FindCharsInRange\FindCharsInRange.h"。PS:很多文件都是在 src\WinControls 的子目錄裏,自己找吧。
或者,右鍵項目->屬性->配置屬性->C++ -> 常規 -> 包含目錄 將npp.6.1.5.src\PowerEditor\src\WinControls\目錄下的所有子目錄包含進去。
問題:localization.cpp 裏說找不到 POS_RELOAD 這個標識符的定義。
解決方案:這是二流程序猿犯的拼寫錯誤吧,因爲這個文件裏定義了一個 POS_RELOAOD 常量,注意拼寫:一個是 POS_RELOAD , 一個是 POS_RELOAOD 。解決方法,將錯就錯,把 POS_RELOAD 改爲 POS_RELOAOD
問題:提示xml文件有錯
這個是因爲 xml文件名不對的問題。應該是 右鍵項目->屬性->通用配置->生成事件->後期生成事件->命令行 中的xml名字不對。
config.xml改爲 config.model.xml
langs.xml改爲 langs.model.xml
stylers.xml改爲 style.model.xml
問題:提示找不到Notepad++.exe文件
解決方案:修改其輸出文件名,在右鍵項目->屬性->通用配置->鏈接器->常規,將輸出文件後改爲如圖