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。 –