Можно ли использовать надстройку функции Visual C MFC в nodejs или golang?

#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 ) не пересекают границы модуля.