|
274 / 178 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
|
|
Собрать Node.js.dll09.08.2020, 00:54. Показов 4187. Ответов 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
|
|||
|
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
|
|
| 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|