【问题标题】:Marshalling Date type编组日期类型
【发布时间】:2011-01-19 13:29:51
【问题描述】:

我正在尝试编组一个 VB6 结构,但我不知道如何编组 Date 类型,例如: 日期另存为日期

和以下字符串数组: FASTNESSNAME(1 To 6) As String * 16

提前感谢您的帮助。

【问题讨论】:

    标签: marshalling vb6-migration


    【解决方案1】:

    VB6 中的日期与 .NET 中的日期非常相似(都是 8 个字节),因此您应该将其编组为 System.DateTime。

    .NET 不支持固定长度字符串和基于 1 的数组。对于固定长度的字符串,您可以只使用自定义 .NET 类吗?

    除此之外,您还可以使用<VBFixedString(20)> 定义固定字符串,但这与您在VB6 中所期望的方式不同。如果你在结构中使用它:

    Private Structure FixedStr
        <VBFixedString(20)> Dim strTest As String
    End Structure
    

    然后在您的代码中使用 - 您可以获得不同的结果:

    Dim fs As FixedStr
    fs.strTest = "1234567890123456789012345"
    
    MsgBox(Len(fs)) '<- Shows 20
    MsgBox(Len(fs.strTest)) '<- Shows 25
    

    【讨论】:

    • 除此之外,您还可以使用 定义固定字符串,但这与您在 VB6 中所期望的方式不同。如果你在结构中使用它:
    猜你喜欢
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    相关资源
    最近更新 更多