JS+
Усиленный язык сценариев для Windows
с возможностью встраивания
в ваши приложения
О языке JS+ Справочник Скачать JS+ DLL
Контакты
СПРАВОЧНИК ПО ЯЗЫКУ JS+ Содержание

JS+ и Visual C++

Встраивание в приложения
При встраивании языка программирования JS+ в приложение, написанное на Visual C++, необходимо подключить библиотеку JS+ DLL, представленную файлом jsplus_32.dll (здесь и далее речь идет о файлах, расположенных в каталоге ATTACH папки установки JS+). На данный момент доступна 32-разрядная версия библиотеки, соответственно ваше приложение также должно быть 32-разрядным. Для приложений Visual C++ возможен динамический вариант подключения библиотеки JS+ DLL:
Динамическое подключение
При динамическом подключении файл jsplus_32.dll может находиться в любой папке и загружается по вашему желанию в определяемое вами время. Ниже представлены действия по подключению библиотеки JS+ DLL к MFC-приложению Visual C++:
  • скопируйте в папку вашего проекта файлы:
    C++\JSP_Head.hpp
    C++\Dynamic\JSP_Dynamic.hpp
    C++\Dynamic\JSP_Dynamic.cpp
  • добавьте в заголововочный файл pch.h вашего проекта следующую строку:
    #include "JSP_Dynamic.hpp"
  • добавьте в начало cpp-файла, который будет работать со скриптами JS+, (после подключения заголовочных файлов) следующую строку:
    #include "JSP_Dynamic.cpp"
  • скопируйте в удобную для вас папку файл:
    jsplus_32.dll
В начале работы вашего приложения вызовите функцию:

int JSP_DynDLLSetup(WCHAR* fld_wStr,WCHAR* err_wStr);

Эта функция выполняет динамическую загрузку библиотеки JS+ DLL и получает адреса экспортируемых ею функций. Она имеет следующие параметры:

fld_wStr - содержит путь до файла jsplus_32.dll;
err_wStr - принимает возможное сообщение об ошибке.

В случае успеха функция возвращает значение JSP_OK (0) или JSP_ERROR (-1) в противном случае.

Пример вызова функции JSP_DynDLLSetup (здесь ожидается, что файл jsplus_32.dll находится в папке расположения исполняемого файла вашего приложения):

WCHAR err_wcStr[255];
...
if (JSP_DynDLLSetup(L"",err_wcStr)!=JSP_OK){
  AfxMessageBox(err_wStr);
  return;
}

// Успешное продолжение

По окончании работы с библиотекой JS+ DLL не следует самостоятельно выгружать ее вызовом функции FreeLibrary(), поскольку библиотека JS+ DLL и работающее с ней приложение имеют общие данные. Библиотека JS+ DLL будет автоматически выгружена системой Windows по окончании работы вашего приложения.
Выполнение скриптов JS+ из приложения Visual C++
После успешного вызова функции JSP_DynDLLSetup вызовите функцию JSP_Start:
int jsp_ret;
...
jsp_ret=JSP_Start("TRIAL","User=VC++");
Если функция вернула значение JSP_OK (0), вы можете выполнять скрипты JS+ в своем приложении и обмениваться с ними необходимой информацией.

Для выполнения скрипта, представленного текстовой строкой, вызовите функцию JSP_RunCode:

WCHAR run_wStr[]=L"alert('Привет, JS+!');";
...
JSP_RunCode(L"",run_wStr);
Аналогичным образом возможно выполнение скрипта, загруженного, например, в поле редактирования CEdit:
CEdit *edt;
CString jsp_cStr;
std::wstring jsp_wStr;
...
edt->GetWindowText(jsp_cStr);
jsp_wStr.assign(jsp_cStr);
JSP_RunCode(L"",(WCHAR*) jsp_wStr.c_str());
Также возможно прямое выполнение скрипта, расположенного в текстовом файле, например, при выборе его через диалог открытия файла:
WCHAR tmp_wcStr[MAX_PATH+1];
CFileDialog dlg;
...
wcscpy_s(tmp_wcStr,dlg.GetPathName());
JSP_RunFile(L"",tmp_wcStr);
Взаимодействие скриптов JS+ с приложением Visual C++
Библиотека JS+ DLL имеет широкий спектр экспортируемых функций, предназначенных для взаимодействия скриптов JS+ с внешним приложением. Скрипты JS+ могут вызывать функции приложения Visual C++, передавая в качестве параметров переменные логического, числового, строкового и объектного типов, а также их массивы. Приложение Visual C++ также может передавать в скрипт JS+ переменные указанных типов.

В каталоге ATTACH\Example\Visual C++ установочной папки JS+ представлен рабочий проект MFC-приложения JS+ Test, подробно демонстрирующий взаимодействие скриптов JS+ с приложением на платформе Visual C++ (версия 2019/2021).

Совместимость
Visual C++
JS+Руководство пользователя
Адрес этой страницы: http://jsplus.ru/MANUAL/JSPlus/EmbedApp/VslCpp.htm
© 2024,