Notepad++在vs2010下編譯運行

最近想找一個開源軟件代碼來看看,突然發現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內

設置爲unicode debug模式clip_image001

然後編譯鏈接。


問題:很多頭文件找不到,比如 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文件 
解決方案:修改其輸出文件名,在右鍵項目->屬性->通用配置->鏈接器->常規,將輸出文件後改爲如圖 
clip_image002

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章