js 好像不能byref... 试试改成这种调用方式的mChallenge=obj.GenerateChallenge();

解决方案 »

  1.   

    当然,你的c代码也要改,然后 vb和js用同一种形式
      

  2.   

    更正 是这种形式  mChallenge=obj.GenerateChallenge(mChallenge); 
      

  3.   

    sorry 误会,还是之前的形式
      

  4.   


    可是这个函数声明是固定的了
    STDMETHODIMP CMyServerCom::GenerateChallenge(VARIANT *mChallenge)
     
    如果要改要怎么该呢?
      

  5.   


    好像我把IDL的[out]改成[out, retval]
    可以得到我要的随机数~~多谢madpc兄好心指点~~
      

  6.   

    对com不了解,应该是不同客户语言对参数及返回值的处理方式不同
      

  7.   

    out是输出参数,加上retval表示同时作为函数的返回值返回。这是为了支持VB、ASP等语言。因为在C++中可以以参数引用的方式取得返回指,而VB、asp中没有引用,没有指针的概念。