Reputation: 2298
I'm trying to convert the following C# code to F#:
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
private class DOCINFOA
{
[MarshalAs(UnmanagedType.LPStr)]
public string nomeDocumento;
[MarshalAs(UnmanagedType.LPStr)]
public string arquivoSaida;
[MarshalAs(UnmanagedType.LPStr)]
public string tipoDado;
}
I'm doing the following:
namespace Printer
module RawPrinterHelper =
[<StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)>]
type DOCINFOA =
[<MarshalAs(UnmanagedType.LPStr)>]
member this.nomeDocumento
[<MarshalAs(UnmanagedType.LPStr)>]
member this.arquivoSaida
[<MarshalAs(UnmanagedType.LPStr)>]
member this.tipoDado
But I receive:
A type definition requires one or more members
. Can I let these members empty?
Upvotes: 3
Views: 95
Reputation: 144136
You can use val
instead of member
:
[<StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)>]
type DOCINFOA =
[<MarshalAs(UnmanagedType.LPStr)>]
val nomeDocumento : string
[<MarshalAs(UnmanagedType.LPStr)>]
val arquivoSaida : string
[<MarshalAs(UnmanagedType.LPStr)>]
val tipoDado : string
Upvotes: 4