Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2018, 17:51   #1
SvitTer
Пользователь
 
Регистрация: 21.02.2012
Сообщений: 11
По умолчанию вычисление jsmath через браузер

Доброго времени
хочу заставить Лису(FF) вычислять math функцию внутри браузера, а не через Windows (ADVAPI32.DLL Function36).
Но при компиляции измененного кода постоянно получаю ошибки.
Я конечно кривые коды пишу, но пытаюсь подстроиться под исходный С++.

Например: в файл jsmath.cpp подгружаю
#include <stdlib.h>
#include <time.h>
#include <random>
#include <algorithm>
.........
.........
double
js::math_random_no_outparam(JSConte xt* cx)
{
if JSContext* == "Math.floor(Math.random() * (max - min + 1) + min)"
{
return Math.floor(Math.random() * (max - min + 1) + min);
}
return random_nextDouble(&cx->compartment()->rngState);
}
........

в итоге не видит и не распознает ни рандом, ни фло, ни мат, ни джиэс контекст
Подскажите в каком направлении копать.
SvitTer вне форума Ответить с цитированием
Старый 01.04.2018, 19:28   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

А что это за бред написан?

Код:
JSContext*
Что это? Объявление указателя? В сравнении?

Цитата:
== "Math.floor(Math.random() * (max - min + 1) + min)"
Контекст это объект, параметр. Он не равен строке. Тем более так С строки не стравнивают.

Код:
Math.floor(Math.random()
Это же из JS. А у вас С++ код.
p51x вне форума Ответить с цитированием
Старый 03.04.2018, 06:32   #3
SvitTer
Пользователь
 
Регистрация: 21.02.2012
Сообщений: 11
По умолчанию

точно....
вероятно такой код тоже не будет работать:
double
js::math_random_no_outparam(JSConte xt* cx)
{
if (JSContext* == "Math.floor(Math.random() * (max - min + 1) + min)")
{
void main()
{
Random^ rnd = new Random();
{
int max, min;
rnd->Next(max, min);
}
}
}
return random_nextDouble(&cx->compartment()->rngState);
}

....тогда как быть?
если надо, чтобы при событии и исполнения строки Math.floor(Math.random() * (max - min + 1) + min) в JS срабатывал именно прописанный рандом браузера...

Последний раз редактировалось SvitTer; 03.04.2018 в 06:35.
SvitTer вне форума Ответить с цитированием
Старый 03.04.2018, 06:38   #4
SvitTer
Пользователь
 
Регистрация: 21.02.2012
Сообщений: 11
По умолчанию

это исходный код:
double
js::math_random_no_outparam(JSConte xt* cx)
{
return random_nextDouble(&cx->compartment()->rngState);
}
SvitTer вне форума Ответить с цитированием
Старый 03.04.2018, 07:30   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от SvitTer Посмотреть сообщение
ероятно такой код тоже не будет работать
Абсолютно. Он даже не скомпилится. Мало того, что прошлые ошибки не исправили, так добавили новых.

Код:
void main()
Что это? Почему оно внутри блока внутри фукнции?

Код:
Random^
Что это? Это вам не .NET или Delphi.

Цитата:
Сообщение от SvitTer Посмотреть сообщение
....тогда как быть?
Учить язык или искать человека, который его знает.

Цитата:
Сообщение от SvitTer Посмотреть сообщение
если надо, чтобы при событии и исполнения строки Math.floor(Math.random() * (max - min + 1) + min) в JS срабатывал именно прописанный рандом браузера...
1. Нет такого события. Условно: есть модуль браузера, который описывает Math и все его функции. Есть Math.random, есть Math.floor, а вот функции-выражения нет.
2. Прописанный рандом браузера итак срабатывает.

Цитата:
Сообщение от SvitTer Посмотреть сообщение
это исходный код
И он верный, компилируемый и рабочий.
p51x вне форума Ответить с цитированием
Старый 03.04.2018, 15:54   #6
SvitTer
Пользователь
 
Регистрация: 21.02.2012
Сообщений: 11
По умолчанию

этот код я подсмотрел у msdn.microsoft.com, они его именно как С++ позиционируют.

Цитата:
Сообщение от p51x Посмотреть сообщение
2. Прописанный рандом браузера итак срабатывает.
конечно он и срабатывает. НО он срабатывает на весь random а я хочу выделить число между max & min в отдельную строчку
SvitTer вне форума Ответить с цитированием
Старый 03.04.2018, 16:02   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от SvitTer Посмотреть сообщение
этот код я подсмотрел у msdn.microsoft.com, они его именно как С++ позиционируют
1. Как С++ CLI. Не зря же он в разделе .Net Framework.
2. И даже списали не правильно - где gcnew потеряли?

Цитата:
Сообщение от SvitTer Посмотреть сообщение
НО он срабатывает на весь random а я хочу выделить число между max & min в отдельную строчку
Что именно вы хотите? Какое число? Макс и мин там для границ рандомного числа.
p51x вне форума Ответить с цитированием
Старый 04.04.2018, 05:17   #8
SvitTer
Пользователь
 
Регистрация: 21.02.2012
Сообщений: 11
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Что именно вы хотите?
мне надо, изменить исходный код так, чтобы при выполнении js кода браузером и при встрече с Math.random() * (max - min + 1) + min эта строка вычислялась по отдельно написаной стандартной формуле. Остальные варианты вычисления Random пусть останутся как есть.
SvitTer вне форума Ответить с цитированием
Старый 04.04.2018, 07:10   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Тогда вам нужно подниматься выше и переправлять парсер. Потому что на текущий момент у браузера, как и полагается при стандартном разборе, есть:
1. Вычисление рандома Math.random()
2. Вычисление разности max - min
3. Вычисление суммы t + 1
4. Вычисление произведения r * z
5. Вычисление суммы y + min

Вам бы хоть чуть-чуть разобраться и понять, что и здесь, и где-то там вычисление рандома одно Math.random(). Что пользователь его потом нормирует, к чему приводит или сохраняет это уже совершенно другой вопрос. Еще раз "* (max - min + 1) + min" не является вычислением рандома.
p51x вне форума Ответить с цитированием
Старый 04.04.2018, 08:44   #10
SvitTer
Пользователь
 
Регистрация: 21.02.2012
Сообщений: 11
По умолчанию

с этим понятно,
FF хорош своим модульным построением, где найти парсер или модуль отвечающий за парсинг страниц, по каким признакам?
SvitTer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LaTex, jsMath реализация в ASP.NET Oomel ASP.NET 0 12.05.2013 15:06
Управление программой через браузер medved6216 Работа с сетью в Delphi 2 19.02.2013 13:30
Авторизация на сайте через браузер demiancz Работа с сетью в Delphi 2 20.03.2012 10:06
Управление прогой через браузер. VintProg Работа с сетью в Delphi 13 28.12.2011 19:01
Проблема с загрузкой через браузер pavel42 Компьютерное железо 0 05.06.2010 23:13