代码之家  ›  专栏  ›  技术社区  ›  Dialecticus

无法读入字符串全球.asa

  •  0
  • Dialecticus  · 技术社区  · 14 年前

    我有一个ActiveX控件在里面运行全球.asa在IIS中。该控件有一些BSTR属性,但在服务器的VBScript中,它们的格式似乎不正确,好像VBScript不理解它们是字符串一样。可以检索string属性,也可以将其赋给另一个变量,但不能连接两个字符串。结果可以说是未定义的,但实际上是连接的第一个参数。同样的代码在早期版本的IIS中运行良好,但在Windows服务器上不再运行 2008 2003怎么回事,怎么解决?

    Dim resultString
    resutString = MyControl.String1 & MyControl.String2
    

    [id(16), helpstring("property String1")] BSTR String1;
    [id(17), helpstring("property String2")] BSTR String2;
    ...
    DISP_PROPERTY_EX_ID(CMyControl, "String1", dispidString1, GetString1, SetString1, VT_BSTR)
    DISP_PROPERTY_EX_ID(CMyControl, "String2", dispidString2, GetString2, SetString2, VT_BSTR)
    ...
    BSTR CMyControl::GetString1(void)
    {
       AFX_MANAGE_STATE(AfxGetStaticModuleState());
    
       CString strResult;
       ...
       return strResult.AllocSysString();
    }
    
    1 回复  |  直到 14 年前
        1
  •  0
  •   AnonJr    13 年前

    正如Rico在其中一条评论中提到的,在发布问题时,有一个打字错误可能只是复制/粘贴错误,但仍然需要注意:

    Dim resultString
    resutString = MyControl.String1 & MyControl.String2
    

    您正在将字符串复制到拼写错误的变量。。。可能就这么简单。

    如果这不能解决问题,您可能需要尝试将值强制转换为字符串,如:

    resultString = cStr(MyControl.String1) & cStr(MyControl.String2)
    

    或者

    resultString = cStr(MyControl.String1 & MyControl.String2)