在項目中,使用webkit做爲客戶端訪問web服務器,webkit須要訪問本地資源,node.js沒有提供相應的支持,因此準備本身寫一個用c++做爲編程語言的node.js擴展,現將最簡單的helloworld實現過程記錄以下:node
須要安裝的軟件:Git-2.5.1-32-bit.exe python-2.7.11.msi node-v4.3.1-x86.msi vs.net 或 msbuild python
1.到github網站下載,示例源碼 https://github.com/lupomontero/node-cpphelloc++
在DOS提示符下執行下面的命令git
# Install node-gyp globally if not installed yet
npm install -g node-gyp
# Clone, build and test git clone git://github.com/lupomontero/node-cpphello.git cd node-cpphello node-gyp configure build npm test
在執行node-gyp configure 時,須要用到msbuild2012,個人電腦安裝的vs2015,出錯,提示,找不到cpphello.vcxproj文件中的第19行,找不到定義的$(VCTargetsPath)\Microsoft.Cpp.Default.props文件,經分析
$(VCTargetsPath)定義的路徑不對,在註冊表時查找 VCTargetsPath 的定義,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0找到$(VCTargetsPath)的定義項,可能好幾個,改爲$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V140\')),重點是140(vs2015),其它的版本做相應的修改。
在當前目錄下生成./build/Release/cpphello.node
2.調用cpphello.node
與一個test.js文件,內容爲
var cpphello = require('./build/Release/cpphello');
console.log(cpphello.foo());github
好了,在dos黑窗口裏調用,試試吧 node test.jsweb