ocx控件,里面添加了一个方法返回double数组,js调用ocx接接收数组。代码如下,不知道哪里有问题。请大神帮忙看看
ocx方法代码:没有输入输出参数,返回了一个VARIANT数组
VARIANT CSmoocxCtrl::TESTto(void)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
SAFEARRAY *psa; // 定义psa类型为SAFEARRAY*
SAFEARRAYBOUND rgsabound[1]; // 定义数组的维度
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = 3;
psa = SafeArrayCreate( VT_R8, 1, rgsabound ); // 创建一个SAFEARRAY
double *bstrArray;
SafeArrayAccessData(psa,(void **)&bstrArray);// 并且用SafeArrayAccessData将psa与bstrArray进行绑定
bstrArray[0] = 1000.0;
bstrArray[1] = 5.50;
bstrArray[2] = 2.80;
SafeArrayUnaccessData(psa);
VARIANT vaResult;
VariantInit(&vaResult);
vaResult.vt = VT_ARRAY|VT_R8;
// TODO: 在此添加调度处理程序代码
vaResult.parray = psa;
return vaResult;
}
js调用代码:
帮帮忙,急!!!
如果你在本地客户端测试了你的ocx并且没有问题,那么可能是权限的问题或者是ocx没有加载。先在客户机上注册下你的ocx,然后把你的浏览器的安全等级调低看看。
楼上正解,本地客户端先试
如果客户端没问题,检查:
1、用管理员权限运行IE,其他浏览器更不行
2、IE允许运行控件