2016-10-02 27 views
0

目前,我有一些使用MFC的visual C++函數。我可以使用這個函數作爲nodejs或golang中的C++插件嗎?是否可以在nodejs或golang中使用Visual C++ MFC函數插件?

具體而言,我需要以某種方式通過我的golang或nodejs代碼訪問OCX(ActiveX)對象。所以,我決定用C++寫下附加組件,但是如果不使用MFC/ATL的話,會發現它非常困難。那麼,我可以使用這些MFC/ATL函數作爲nodejs或golang中的插件/擴展嗎?謝謝!

+0

您可以將SWIG用於C++和Go:http://www.swig.org/Doc2.0/Go.html – 2016-10-02 09:19:50

+0

您似乎錯過了很明顯的例子:ActiveX基於COM,一種語言不可知的ABI,可以從JavaScript調用(至少是'IDispatch'接口)。您正在嘗試爲某些東西編寫包裝,這已經可以被您的目標平臺消費。 – IInspectable

回答

1

你可以從你的插件C++代碼中調用ATL/MFC代碼,但是如果沒有你的中間包裝層,你不能直接從nodejs/golang綁定到ATL/MFC。

注意:要麼節點FFI爲的NodeJS或CGO爲golang是與本地代碼的集成有用的,但將不利於直接調用ATL/MFC只是因爲兩個節點FFICGO目標C調用約定(全部C++代碼必須與外部的「C」經由節點FFI可調用/CGO被包裹)。所以你仍然需要在ATL/MFC上創建C++包裝。當創建你的插件/擴展時,確保ATL/MFC異常(或任何其他C++異常)不會跨越模塊邊界。

相關問題