Мне нужно создать DLL с помощью C. Но я видел некоторые проблемы. Хорошо, сначала: мне нужна функция в библиотеке dll для вычисления угла линии - tgA = dy / dx. Угол = arctg (dy / dx). И я определяю это в файле framework.c:
JSBool computeAngle(JSContext *cx,
JSObject *obj,
unsigned int argc,
jsval *argv,
jsval *rval ) {
double dx, dy, angle;
if (argc != 2) {
return JS_FALSE;
}
if (JS_ValueToDouble(cx, argv[0], &dy) == JS_FALSE ||
JS_ValueToDouble(cx, argv[1], &dx) == JS_FALSE) {
return JS_FALSE;
}
if( dx == 0 ) {
if( dy < 0 ) angle = -90;
else if( dy > 0 ) angle = 90;
else angle = 0;
}else angle = atan(dy/dx)*180/M_PI;
return JS_DoubleToValue(cx, angle, rval);
}
Но этот метод не работает!
Я подумал, что что-то не так, и скачал Sample.zip с сайта Adobe. Я изменил функцию computeSum в своей функции, но она все еще не работает. Я думаю, что что-то не так с методами JS_ValueToDouble () и JS_DoubleToValue. Как вы думаете?