【问题标题】:Byte array in Classic ASP经典 ASP 中的字节数组
【发布时间】:2011-11-19 10:43:18
【问题描述】:

如何在经典 ASP 中编写以下代码?我在包含文件中使用此代码。

 byte[] bytes = new byte[stream.Length] 

如果有人能说出如何在经典 ASP 中为StreamWriter 创建对象,那就太好了。

  Set sw = Server.CreateObject("System.IO.StreamWriter(stream)")

我不确定引号内的代码System.IO.StreamWriter(stream)

【问题讨论】:

    标签: asp.net asp-classic


    【解决方案1】:

    经典 ASP 只是普通的旧 VBScript。 CreateObject 使用 classid/progid 创建 COM 对象:CreateObject("ADODB.Connection") 或 CreateObject("Scripting.FileSystemObject")。

    经典 ASP 可以使用实际上是 .NET 对象的 COM 对象...但前提是它们是专门为支持 COM 互操作而构建的。大多数内部 .NET 东西都没有构建支持 COM 互操作。

    见:http://msdn.microsoft.com/en-us/library/zsfww439.aspx

    如果您只需要一个流对象(不一定是 .NET System.IO.Stream 对象),那么我建议您使用 ADODB.Stream。

    在 ASP/VBScript 中并非所有变量都是变体。这使得像字节数组这样的事情变得棘手。你可以有一个变体数组没什么大不了的,所有变体都可以是字节......但你不能创建一个只能保存字节的数组。更奇怪的是……如果一个 COM 对象返回一个 SAFEARRAY 字节,那么 ASP/VBScript 很乐意使用它。

    【讨论】:

      【解决方案2】:

      我认为没有直接翻译到 StreamWriter。我的经典 ASP 对象知识有限,但 IIRC 最接近的匹配是 FileSystemObject。至于字节数组:

      Dim bytes(stream.Length-1) As Byte
      

      【讨论】:

        【解决方案3】:

        不确定你想做什么,但是..

        当我想处理来自 vbscript 的字节数组(比如来自数据库的 BLOB)时,我创建了一个通用的 VB6 COM 对象,它可以对字节数组执行操作。

        http://www.di-mgt.com.au/bytearrays.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-04-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多