|
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
|
|
Собрать Node.js.dll09.08.2020, 00:54. Показов 4323. Ответов 18
Метки нет (Все метки)
Добрый день, проконсультируйте плииииииз... (с С++ знаком на уровне новичка - простые консольные на GCC)
Есть такой язык/среда/исполнитель как Node.js. Это "серверная" версия движка JavaScript "v8" (доступ к файловой системе, возможность создавать веб сервера, многопоточность и много чего еще из того чего не получить в браузерной JS). Есть NWJS - это кросплатформенная среда для создания "окошечных" программ - микс из Node и Хром-движка для отобрания веб-страниц в отдельных окошках встроенного бразуера. Внутри NWJS нашел библиотеку Node.dll... подозреваю что это "хитро-скомпилированная Node.js" Исходники не нашел (пока), поэтому подумал... А можно ли консольньную программу на С++ собрать не в виде EXE, а в виде DLL? По идее исходники должны быть в https://github.com/nwjs/nw.js , но ничего по самому "ядру" ноды (v8) не нашел... Куда рыть дальше даже не подозреваю! (( Конечная цель: научиться писать на С++ приложения, где часть логики вынесена во ВСТРОЕННЫЙ движок JS. (а не внешней консольной программой) Например написать на С++ плагин для Notepad++ как "переходник" между АПИ Notepad++ и JS. Для начала хватило бы получить список функций в *.h для этой библиотеки. Но я не знаю КАК это искать! Вам (Си-шникам) это ближе... Подскажите, с какой стороны искать? p.s. Гугл дает лишь "как написать НА с++ плагин ДЛЯ ноды", а мне нужен "обратный" процесс... Как "использовать ноду в виде плагина"!
0
|
|
| 09.08.2020, 00:54 | |
|
Ответы с готовыми решениями:
18
Кто может поделиться файлами ogg.dll, vorbis.dll и vorbisfile.dll - 32-х и 64-битными версиями? Порядковый номер 354 не найден в библиотеке DLL LIBEAY32.DLL Windows I/o без Kernel32.dll и Advapi32.dll |
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 09.08.2020, 11:44 | ||
|
https://v8.dev/docs/build Не скажу что это такая простая задача, но я в своё время разобрался и активно использовал этот V8 в своих серверах безо всякого node.js.
1
|
||
|
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
|
|||
| 09.08.2020, 11:50 [ТС] | |||
|
Добавлено через 2 минуты
0
|
|||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||
| 09.08.2020, 11:55 | |||
|
А что ты подразумеваешь под "дописывать костыли? Добавлено через 1 минуту Добавлено через 2 минуты А вообще, V8 мне очень сильно не понравился, и я не раз пожалел, что с ним связался. Мозиловский SpiderMonkey на мой взгляд выглядит более адекватным - документация лучше, api с виду тоже лучше. Хотя с ним я не работал.
0
|
|||
|
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
|
|||
| 09.08.2020, 12:19 [ТС] | |||
|
"краткий" набор функций предоставляемый модулем fs. Там и надежное копирование и слежение за папкой, и работа с начинкой файлов... Причем это доступно как "КОМАНДЫ внутри JS скриптов". Если этого нет "в коробке", мне придется писать свой модуль, предоставляющий из JS эти команды... Это работа на много месяцев, а я не "профи" в С++ Задумался "как было бы классно..." написать плагин-переходник между Notepad++ и Node (мне бы и знаний С++ тогда хватило бы - достаточно "транслятор" с АПИ Блокнота в "нативный" модуль Node оформить). И всю логику парсинга переложить на JS - разработка в РАЗЫ быстрее и удобные инструменты отладки "внешние"/"выносные" существуют. Кстати встречал какие-то плагины под Notepad++ использующие Python. В идеале всю ноду бы "запаковать" в dll и сделать "портабл". Потом придумал еще 3-4 возможных применения подобной библиотеки в разных языках и программах под Win. Теоретически можно даже под Photoshop плагин написать, TotalCommander, автоматизаторы, даже в учетно-бухгалтерские программы можно встраивать... По ходу нашел/вспомнил что что-то подобное делает NWJS (среда для написания "нативных" мультиОСных программ на движке Node и Chrome) и в его виндовой папке нашел библиотеку Node.dll (по размеру примерно похоже на Node.exe ~11Мб). Как ни старался, ИСХОДНИКИ этой библиотеки не нашел! Не могли бы вы, как СИшник (своим "наметанным взглядом") поискать их? Мне тяжело - я не знаю что/как искать!
0
|
|||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 09.08.2020, 12:25 | ||
|
Добавлено через 1 минуту Здесь есть архив Source Code https://nodejs.org/en/download/
0
|
||
|
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
|
||
| 09.08.2020, 12:29 [ТС] | ||
|
Dll - это без "printf" и без "разбора параметров запуска", но с набором функций для работы с "общей памятью" и возможностью встраивать свои функции/объекты в ее "рабочее пространство" (как нативные функции доступные из JS). ...по идее NWJS уже прошли "этот путь". И они "опенсорсные", а значит где-то должны лежать исходники этой библиотеки! Мне (в идеале) ее даже "собирать" не нужно - достаточно узнать "точки входа" в библиотеку (*.h для подключения в мои проекты). ...Но вот ее исходники так и не удалось найти!!!
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 09.08.2020, 12:58 | ||
|
А вообще, в виндах, для работы с яваскриптом проще использовать MSScriptControl.ScriptControl Он работает через COM, т.е. ты можешь использовать практически всю функциональность windows. И проверять скрипты легко - при помощи wscript
0
|
||
|
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
|
|||
| 09.08.2020, 13:08 [ТС] | |||
|
...теоретически (как и с SQLite.dll) ее можно использовать и на других ОС! (Linux, Мас, Андроид, Айфон) как ВСТРАИВАЕМЫЙ язык.
0
|
|||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 09.08.2020, 13:18 | ||
|
Это системные объекты windows, например WMI, FileSystemObject и др., которые специально сделаны для работы в скриптах. Причём сишного кода там нужно минимум, всё можно делать в скрипте. Но, дело твоё. Подозреваю, ты просто убъёшь пару месяцев на эту Node.js и ничего не сделаешь.
0
|
||
|
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
|
|||
| 09.08.2020, 17:50 [ТС] | |||
|
В Ноде свой набор функций для работы с файловой системой. Причем ВСЕ кто разрабатывает под веб (angular, vui, react, node) в разной степени сталкиваются с этим НАБОРОМ и умеют им пользоваться. Переучивать на "виндовую" JS никто не будет! Для веб-разработчиков это почти "табу" - уж слишком много боли доставляет им Microsoft (начиная с "IE"). Популярность Ноды наоборот растет... Поэтому и хочу сделать "гибрид" из "компилируемой" C++ и "транслятора" JS. У каждого языка свои "плюсы" - почему бы "минусы одного языка не перекрыть плюсами другого"??? Под андроид видел сборку Ноды! (еще не искал исходников). Скорее всего в Java андроида смогли впихнуть свою "*.о" библиотеку на С++ со встроенной нодой и при помощи Java смогли создать имитацию/эмулятор консоли... Тоже не плохо если я ее найду! (не уверен что она опенсорсная = исходники в публичном доступе а не в частной коллекции)
0
|
|||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
|
| 09.08.2020, 20:30 | |
Сообщение было отмечено andyj как решение
Решение
andyj, смотрим сюда: https://github.com/hpicgs/node-embed
Вообще переделка node.js в пригодную для встраивания библиотеку - это довольно большая работа. Достаточно лишь посмотреть список людей, которые в этом принимали участие (тут).
1
|
|
|
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
|
|||
| 10.08.2020, 01:47 [ТС] | |||
|
0
|
|||
|
поисковый робот
30 / 23 / 9
Регистрация: 04.02.2020
Сообщений: 96
|
||
| 10.08.2020, 10:44 | ||
|
ИМХО глупость, вместо того чтобы разобраться с языком с++, пойти "удобным" путем — дергать Node JS функции из с++ программы .
0
|
||
| 10.08.2020, 11:15 [ТС] | ||
|
Не по теме:
Наверное не просто так все ВЕБ-разработчики пишут НЕ на С++? У "интерпритаторов" вроде JS есть свои преимущества по сравнению с С++! При (незначительной) потери в скорости получаем как минимум быструю замену кода, можем забыть про строгую типизацию (на любителя, но мне это больше нравится чем сишные "запреты"). На JS даже "девочка-стажер" способна написать скрипт парсера сложного текста за вменяемое время, а на С++ даже я не уверен что справлюсь... А если к этому добавить еще и УЗКУЮ СПЕЦИАЛИЗАЦИЮ (под веб), получаем явное преимущество перед "чистым С++" в определенных задачах! Мне нужно было написать парсер "кода под курсором" в текстовом редакторе Notepad++ чтобы провести автозамену на "заготовки" (по сложной формуле), хранимые в "быстро-заменяемых" файлах настроек(JSON). Больше 200 Кб кода написал на Лазарус. На JS вложился бы в 2-3 страницы/экрана кода (и вместо 8 часов справился бы за 20-40 минут). Но нет возможности писать плагины на Ноде... На С++ есть "из коробки" (Блокнот на нем написан), есть на Делфи и на Лазарус (танцы с бубном), но на JS даже не планируется...А ведь все что нужно - написать "переходник" между АПИ Блокнота и Нодой. P.s. ЭТА идея у меня не на пустом месте возникла!!! Я когда-то написал подобный "переходник" между Java и JS (браузерной версией). И смог вынести ЛОГИКУ проекта из "долго-компилируемой" Java в быстро-заменяемые скрипты JS. Это ускорило процесс разработки/отладки (узкоспециализированных программ под Андроид) где-то в 100-300 раз (замерял).
0
|
||
| 10.08.2020, 11:31 | |
|
0
|
|
|
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
|
||
| 10.08.2020, 11:46 [ТС] | ||
|
Не по теме:
Нода не способна создать "бинарник" и ее команды по работе с файлами, таблицами, памятью упрощены до уровня маразма (с точки зрения С++)... Но это и многократно снижает "порог входа" в язык! (я знаю НЕ программистов уровня "школьного бейсика", которые вполне понимают что делает JS скрипт, но не могут понять 10ти-строчный код на С++) Не логично каждую "домохозяйку" заставлять углубленно учить "устройство авто" вместо того чтобы дать ей машину с автоматической коробкой передач! Не логично веб-дизайнеров заставлять учить С++ чтобы модифицировать "под себя" скрипты, упрощающие правку CSS/HTML файлов... Гибрид JS и С++ позволит писать сложные программы на С++ с возможность дать "домохозяйке" подправить часть логики "под себя" не зовя программиста! Нагуглил jxcore через "Node android"... похоже это попытки запустить Ноде в не привычных ОС... https://github.com/jxcore/jxcore
0
|
||
| 11.08.2020, 17:37 | |
|
0
|
|
| 11.08.2020, 18:27 [ТС] | |
|
0
|
|
| 11.08.2020, 18:27 | |
|
Помогаю со студенческими работами здесь
19
При компиляции DLL-проекта не создается DLL-ка
Собрать дамп файлы для dll Собрать проект MSVS со всеми dll-ками Как быстро собрать все используемые в проекте DLL Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|