C JSFL中调用的dll有问题

C JSFL中调用的dll有问题,c,flash,dll,jsfl,C,Flash,Dll,Jsfl,我需要使用C创建dll。但是我发现了一些问题。首先,我需要dll库中的函数来计算线的角度-tgA=dy/dx。角度=arctg(dy/dx)。我在framework.c文件中对此进行了定义: JSBool computeAngle(JSContext *cx, JSObject *obj, unsigned int argc, jsval *argv,

我需要使用C创建dll。但是我发现了一些问题。首先,我需要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);
}
JSBool computeAngle(JSContext*cx,
JSObject*obj,
无符号整数argc,
jsval*argv,
jsval*rval){
双dx,dy,角度;
如果(argc!=2){
返回JS_FALSE;
}
如果(JS_ValueToDouble(cx,argv[0],&dy)==JS_FALSE||
JS_ValueToDouble(cx,argv[1],&dx)=JS_FALSE){
返回JS_FALSE;
}
如果(dx==0){
如果(dy<0)角度=-90;
否则,如果(dy>0)角度=90;
else角=0;
}else角=atan(dy/dx)*180/M_π;
返回JS_DoubleToValue(cx、角度、rval);
}
但是这种方法不起作用!
我觉得有点不对劲,于是从Adobe网站下载了Sample.zip。我在我的函数上修改了函数computeSum,但它仍然不起作用。我认为JS_ValueToDouble()和JS_DoubleToValue方法有问题。你怎么看?

这个方法的哪一部分不起作用?从另一组代码中调用dll中的方法(例如,您已经编译了dll并创建了测试程序,但它会引发链接器错误),或者您无法编译dll? 如果是第一个,您的方法需要定义如下宏:

#ifdef EXPORT
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT __declspec(dllimport)
#endif
在头文件中(或者如果函数没有在头文件中声明,则在C文件中),您需要

DLL_EXPORT JSBool computeAngle(JSContext *cx, 
                               JSObject *obj, 
                               unsigned int argc, 
                               jsval *argv, 
                               jsval *rval )

如果试图编译dll时出现错误,则很有可能您没有正确链接到dll-您需要设置项目链接器属性(如果使用MSV),或者如果使用MinGW,则使用-l选项。

此方法的哪一部分不起作用?从另一组代码中调用dll中的方法(例如,您已经编译了dll并创建了测试程序,但它会引发链接器错误),或者您无法编译dll? 如果是第一个,您的方法需要定义如下宏:

#ifdef EXPORT
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT __declspec(dllimport)
#endif
在头文件中(或者如果函数没有在头文件中声明,则在C文件中),您需要

DLL_EXPORT JSBool computeAngle(JSContext *cx, 
                               JSObject *obj, 
                               unsigned int argc, 
                               jsval *argv, 
                               jsval *rval )
如果在尝试编译dll时出现错误,则很可能您没有正确链接到dll-您需要设置项目链接器属性(如果使用MSV)或使用-l选项(如果使用MinGW)