Hi,
have you tried calling it like this
[bool_val, byte_array] = obj.GetLatestBuffer();
This works fine for me in 14a with the following example
C#
public bool GetLatestBuffer(out byte[] Buffer)
{
Buffer = new byte[10];
for (int i = 0; i < 10;i++)
{
Buffer[i] = (byte)i;
}
return true;
}
ML:
>> a = ClassLibrary1.Class1
a =
Class1 with no properties.
>> [bool,array] = a.GetLatestBuffer()
bool =
1
array =
Byte[] with properties:
Length: 10
LongLength: 10
Rank: 1
SyncRoot: [1x1 System.Byte[]]
IsReadOnly: 0
IsFixedSize: 1
IsSynchronized: 0
>>
SideNote: The out keyword forces the routine GetLatestBuffer to assign Buffer to some value. So you do NOT need to pass down a preallocated array and since you dont need to do this it appears as output in MATLAB directly.
Also in C# when using OUT you never pass down a preallocated array. So what MATLAB does is correct here and matches the .NET programming.
0 Comments
Sign in to comment.