我用ATL写了一个COM组件,组件对外提供几个接口,接口的方法参数如果超过一个,在调用的时候就报错,就是说如果有三个参数要传入,如果用一个方法来设置三个参数就报错,如果用三个方法,每个方法设置一个参数就是正常的,哪位大侠知道怎么搞定他

解决方案 »

  1.   

    调用代码:
    Dim FtpServer,serverpath,clientpath
    Set FtpServer = CreateObject("FtpCom.FTPServer.1")
    Set serverpath = Request.Form("server")
    Set clientpath = Request.Form("client")
    FtpServer.SetServerInfo("localhost",21,"","");//这句报错组件代码:
    STDMETHODIMP CTranslate::SetServerInfo(BSTR Address, UINT Port, BSTR User, BSTR Psw)
    {
    AFX_MANAGE_STATE(AfxGetStaticModuleState()) // TODO: Add your implementation code here
    m_sAddress = Address;
    m_nPort = Port;
    m_sUser = User;
    m_sPsw = Psw;

    return S_OK;
    }STDMETHODIMP CTranslate::SetPath(BSTR ClientPath, BSTR ServerPath)
    {
    AFX_MANAGE_STATE(AfxGetStaticModuleState()) // TODO: Add your implementation code here
    m_sClientPath = ClientPath;
    m_sServerPath = ServerPath;

    return S_OK;
    }
      

  2.   

    楼上所说极是。
    asp调用COM有点麻烦。
    因为你的书写错误语法错误等都可能报告,而你却可能认为是COM的问题
    建议用VB先简单测试各个方法属性,然后再转为asp。至少可能确定是否
    是COM的固有错误。