#c #node.js #go #mfc #cgo
#c #node.js #Вперед #mfc #cgo
Вопрос:
В настоящее время у меня есть некоторые функции Visual c , использующие MFC. Могу ли я использовать эти функции в качестве дополнений c в nodejs или golang?
Если быть точным, мне нужно каким-то образом получить доступ к объекту OCX (ActiveX) через мой код golang или nodejs. Итак, я решил записать надстройку с использованием c , но обнаружил, что это действительно сложно без использования MFC / ATL. Итак, могу ли я использовать эти функции MFC / ATL в качестве дополнения / расширения в nodejs или golang? Спасибо!
Комментарии:
1. Вы можете использовать SWIG для C и перейти: swig.org/Doc2.0/Go.html
2. Кажется, вы упускаете очевидное: ActiveX основан на COM, независимом от языка ABI, который можно вызвать из JavaScript (по крайней
IDispatch
мере, интерфейс). Вы пытаетесь написать оболочку для чего-то, что уже используется вашей целевой платформой.
Ответ №1:
Вы можете вызвать код ATL / MFC из своего кода addon C , но вы не можете подключиться к ATL / MFC непосредственно из nodejs / golang без вашего промежуточного слоя-оболочки.
Примечание: либо node-ffi для nodejs, либо cgo для golang полезны для интеграции с машинным кодом, но не помогут напрямую вызывать ATL / MFC только потому, что и node-ffi, и cgo нацелены на соглашение о вызовах C (весь код C должен быть обернут с помощью extern «C», чтобы его можно было вызывать через node-ffi / cgo). Итак, вам все равно нужно создать оболочку C вокруг ATL / MFC. Также при создании вашего дополнения / расширения убедитесь, что исключения ATL / MFC (или любые другие исключения C ) не пересекают границы модуля.