ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

[C# & JavaScript] Вызов функций
  #1  
Старый 28.12.2009, 00:15
dober.man
Banned
Регистрация: 09.12.2009
Сообщений: 7
Провел на форуме:
176856

Репутация: 35
По умолчанию [C# & JavaScript] Вызов функций

Это не статья, просто хочу показать пример того как можно вызывать JavaScript функции внутри приложения C#. Это достаточно таки интересная возможность!

В частности речь пойдет о вызове функции eval(). Для этого потребуется создать "обертку" для функции eval(), которая вычисляет выражение, переданное в качестве параметра.

Ниже приведен код "обертки":
Код:
package JSEval
{
    class JSEval
    {
        public function Eval(expr : String) : String
        {
            return eval(expr, "unsafe");
        }
    }
}
Далее сохраните этот код в файл под названием «JSEval.JSEval.js».

Теперь необходимо скомпилировать её в DLL-сборку. Делается это с помощью утилиты «Visual Studio 2008 Command Prompt». Открыв эту утилиту, выполните следующую команду jsc /t:library JSEval.JSEval.js, после этого в папке с JavaScript-файлом должна появиться наша сборка «JSEval.JSEval.dll».

Далее создаем, к примеру, консольный проект и подключаем сборку(JSEval.JSEval.dll). Так-же понадобиться подключить сборку «Microsoft.JScript». Вот и все, теперь можно использовать класс JSEval в проекте.

Пример представлен ниже:
Код:
class Program
{
    static void Main(string[] args)
    {
        JSEval.JSEval eval = new JSEval.JSEval();
        string expression, result;
 
        Console.Write("Выражение: ");
        expression = Console.ReadLine();
 
        try
        {
            result = eval.Eval(expression).ToString();
        }
        catch
        {
            result = "!!!";
        }
 
        Console.WriteLine("Result: {0}", result);
        Console.ReadLine();
    }
}
Ну и вот собственно работа приложения:



Для тех кто не знает как добавлять сборки:
Проект -> Добавить ссылку -> вкладка ".NET" -> Microsoft.JScript
Проект -> Добавить ссылку -> вкладка "Обзор" -> находите JSEval.JSEval.dll
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Низкоуровневое исследование клиента игровой платформы Garena Dosia Статьи 28 29.05.2010 11:34
Перехват функций на основе генерации исключений sn0w С/С++, C#, Delphi, .NET, Asm 6 16.04.2010 13:33
Хуки Winsock функций Chrome~ С/С++, C#, Delphi, .NET, Asm 3 31.08.2009 18:59
Google бросает вызов Microsoft root_sashok Мировые новости 19 08.07.2009 13:53



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ