Marshal.SizeOf()将在尝试计算MyClass类型的对象的长度时引发异常。Marshal.SizeOf()无法计算包含字符串的对象的大小
这里是类:
<StructLayout(LayoutKind.Sequential, Pack:=1)>
Public Class MyClass
Public ReadOnly UniqueId As Long
<MarshalAs(UnmanagedType.AnsiBStr, SizeConst:=60, SizeParamIndex:=0)>
Public ReadOnly Name As String
End Class
该代码将失败:
Dim MyObject = New MyClass()
Dim size = Marshal.SizeOf(MyObject) 'will throw exception here. Why?
它会抛出异常“任何有意义的大小或偏移量可以计算”
我怎样才能取而代之的是MyObject的长度?
什么平台你正在使用 – Adrian
这个问题似乎与'AnsiBStr'。 'BStr' /'LPStr' /'LPWStr'似乎很好https://stackoverflow.com/questions/6471421/marshal-c-char-in-c-sharp – Slai
我正在编译到x64 Windows中的AnyCPU。 –