Questions tagged [ref-struct]

15 questions
16
votes
1 answer

Why ref structs cannot be used as type arguments?

C# 7.2 introduced ref structs. However, given a ref struct like this: public ref struct Foo { public int Bar; } I cannot use it as a type argument: int i = 0; var x = Unsafe.As(ref i); // <- Error CS0306 The type 'Foo' may not be used…
Fit Dev
  • 3,413
  • 3
  • 30
  • 54
11
votes
2 answers

How to test whether a ref struct method is throwing an exception using xUnit?

I'm new to xUnit, but, as far as I know, the standard way of checking whether something throws an exception is to use Assert.Throws or Assert.ThrowsAny methods. But these methods expect an Action as parameter; and ref structs can't be…
Trauer
  • 1,981
  • 2
  • 18
  • 40
5
votes
1 answer

Why a `stackalloc` expression cannot be assigned to a `Span` parameter?

Consider the following methods (fiddle): void test(Span param) { //Fail, the stackalloc'ed buffer could be exposed. param = stackalloc int[10]; } void test2(Span param) { //OK Span local = stackalloc int[10]; } I…
Margaret Bloom
  • 41,768
  • 5
  • 78
  • 124
4
votes
1 answer

Corrupt contents in NodeJS ref-struct upon garbage collection

Nesting a ref-struct instance within another, one of the properties of the nested object is corrupted upon manual garbage collection. See this minimal code reproduction: https://github.com/hunterlester/minimum-ref-struct-corruption Notice on the 3rd…
Hunter Lester
  • 2,972
  • 3
  • 15
  • 19
3
votes
1 answer

Why can I declare a ref struct as a member of a class in c#7.3?

According the docs: You can't declare a ref struct as a member of a class or a normal struct. But I managed to compile and run this: public ref struct RefStruct { public int value; } public class MyClass { public RefStruct Item =>…
joe
  • 1,078
  • 2
  • 11
  • 30
3
votes
0 answers

node-ffi OUT parameter with type of Struct Pointer cannot receive back values from DLL call

C Data Structure: typedef struct dpfpdd_dev_info { unsigned int size; char name[MAX_DEVICE_NAME_LENGTH]; DPFPDD_HW_DESCR descr; DPFPDD_HW_ID id; DPFPDD_HW_VERSION ver; …
SunTossed
  • 31
  • 3
3
votes
3 answers

How to define a ref struct in F# in .NET Standard 2.0?

When F# 4.5 was announced, it was stated that: The F# feature set is comprised of [...] The ability to produce IsByRefLike structs (examples of such structs: Span<'T>and ReadOnlySpan<'T>). How to "produce" these types? I tried the…
2
votes
0 answers

node-ffi-napi not receiving any response from dll on method call, possible struct issue?

So C++ isn't my strong suit so it's very likely I've made a mistake here in the creation of my struct types, I don't quite understand how to create the equivalent return type the C++ code expects on the js side. Here's a working example from the…
Paul Ryan
  • 461
  • 2
  • 6
2
votes
1 answer

Unable to install ref-struct module on nodejs 12.14.0

i am trying to install ref-struct module using following command : npm install ref-struct Environment specification : nodejs : 12.14.0 npm : 6.13.4 Error i am getting error : Output as text in above screenshots.…
Shivam Kumar
  • 123
  • 3
  • 10
2
votes
0 answers

Array of structure as OUT parameter from C to JS using node-ffi, ref-array and ref-struct

I am using node-ffi for integration of JS with C library. I figured out ways to pass in complex structures as IN params and get single structure as OUT param. But, I could not successfully get an array of structures from C and iterate over them in…
rakeshgn
  • 41
  • 8
2
votes
1 answer

How to read data from a nodejs Buffer created by node-ffi with length 0

I'm trying to wrap an existing C library using node-ffi but I can't seem to read the returned result. The situation is a little awkward because the function returns the C struct typedef struct { int size; void *ptr; } datum; and the length…
Charlie Burns
  • 6,994
  • 20
  • 29
1
vote
1 answer

System.Reflection.Emit: field or property of ref struct

For the following interface and struct: internal interface IRecord where T : struct { ref T Values { get; } } public struct Entity { public int Field1; ... } I would like get the following lambda expression via…
Weifen Luo
  • 603
  • 5
  • 13
1
vote
0 answers

How do I use complex data structures with `ffi`, `ref-struct`, and `ref-array`?

I am working on a project that uses ffi to interact with a compiled C library. I am trying to get some complex data structures to work and am having problems figuring out the proper way to get values inside these data structures. I have two…
Zachary Abresch
  • 756
  • 3
  • 8
  • 20
0
votes
1 answer

How To Read 16 bits integer with ffi and ref-struct

I am able to load a certain DLL and call a certain function in that DLL using some basic Win32 C/C++ code. The function I call wants the address of a buffer allocated by the caller, which will be filled by the call, at a given offset, with a 16 bits…
manuell
  • 7,528
  • 5
  • 31
  • 58
0
votes
1 answer

What is GRefString implementation in GLib?

I wonder where is the reference count stored? As the type is defined as: typedef char GRefString; And all the g_ref_string*…() functions are returning simply gchar * instead of a structure, which could hold the reference count. Is it the trick of…
psprint
  • 349
  • 1
  • 10