请个小例子,和说明!!!谢谢指教

解决方案 »

  1.   

    asp是vbscript,所以不存在数组,全部是变体变量,所以数组需要以变体变量传入,在com中自己判断检查后转换为数组。
      

  2.   

    [id(1), helpstring("method ExpectArray")] HRESULT ExpectArray([in] VARIANT varArray,[out,retval]BSTR* outstr);
    STDMETHODIMP CArrayTest::ExpectArray(VARIANT pvarArray,BSTR* outstr)
    {
    // accepte array from vbscript
    _bstr_t bstmp;
    VARIANT* varArray;
    if(pvarArray.vt==(VT_VARIANT|VT_BYREF))
    {
    varArray = pvarArray.pvarVal;
    }
    else
    varArray = &pvarArray;
    if(VT_ARRAY|VT_BYREF|VT_VARIANT==varArray->vt) 
    {
    VARIANT* strarray;
    SAFEARRAY* psa = *(varArray->pparray);
    //SafeArrayCopy( *(varArray->pparray),&psa);
    SafeArrayAccessData(psa,(void**)&strarray);
    UINT uDim = SafeArrayGetDim(psa);
    if(uDim==1)
    {
    long lLbound,lRbound;
    SafeArrayGetLBound(psa,1,&lLbound);
    SafeArrayGetUBound(psa,1,&lRbound);
    for(long i=lLbound;i<=lRbound;i++)
    {
    if(strarray[i].vt==VT_BSTR)
    bstmp +=strarray[i].bstrVal;
    else if(strarray[i].vt==VT_EMPTY)
    {
    char buf[64];
    wsprintf(buf,"element%d is empty",i);
    bstmp +=buf;
    }
    }
    }
    else
    bstmp = "wrong dimension number";
    SafeArrayUnaccessData(psa); 
    }
    *outstr = bstmp.copy();
    return S_OK;
    }set obj = createobject("AcceptArray.ArrayTest")
    dim s(3)
    s(1) = "aaa"
    s(2) = "bbb"
    s(3) = "ccc"
    obj.expectarray(s)set obj = nothing
      

  3.   

    asp中传递参数给ocx控件如何传递?
    例如:控件中有个方法test(long ss);
    asp中用<object classid="test" ....>对象加入控件
    然后调用test.test("hi")
    却不成功,但未提示什么错误
    请问一般的参数如何传递啊?
      

  4.   

    to seventhmm(一线飘飘) :<object id=ctrTest classid=clsid:838C58E9-1C5C-409B-AA18-B156DCB65DD9 Width=20 Height=20> </object> ctrTest.test("hi")
      

  5.   

    classid 不是 id
    id用于在页面中定位具体的控件,
    classid 用于 在操作系统中定位ocx
    __________________
    另外:
     test(long ss);中参数是个长整型变量,而你调用时,跟的是字符串
      

  6.   

    >>masterz(MS MVP) ( )
    谢谢