结构得到了默认的构造函数,就像我一样
type tagONEDEV_FlowRec =
struct
.......
end
Run Code Online (Sandbox Code Playgroud)
我可以这样做,new DeviceModel.tagONEDEV_FlowRec()但它无法解决这个问题:
let (<++|) device bytes size =
let unmanagedPtr = Marshal.AllocHGlobal(size : int)
Marshal.Copy( (bytes : byte array), 0, unmanagedPtr, size)
Marshal.PtrToStructure(unmanagedPtr, (device : obj)) // Here
Marshal.FreeHGlobal(unmanagedPtr)
Run Code Online (Sandbox Code Playgroud)
我需要一个类似的记录课
[<type:StructLayout(LayoutKind.Sequential, Pack=1, CharSet=CharSet.Ansi)>]
type tagONEDEV_FlowRec = {
mutable ....;}
Run Code Online (Sandbox Code Playgroud)
要么
type tagONEDEV_FlowRec =
class
.......
end
Run Code Online (Sandbox Code Playgroud)
但是这里没有默认的构造函数,并且结构非常大,无法手动初始化它们,所以如何将这些类与默认构造函数一起使用?
如果我找不到解决方案,我认为在C#或甚至VB.NET上重新编写这部分将会更快.听起来很像拐杖解决方案,但看起来我还不能用F#OOP部分拨号.
另外一个:我不想输入的东西是:
{TimeRec = 0;
Num = 0us;
FlagErr = 0us;
C6 = 0.0;
C2H6 = 0.0;
C3H8 = 0.0;
CH4 = 0.0;
CO2 …Run Code Online (Sandbox Code Playgroud)