A "gotcha" with object handles
Related
More from Eric Sink
This is part of a series on Native AOT. Previous -- Top A few weeks ago I published some samples showing the use of Native AOT libraries from Rust. As I mentioned, the projection of .NET APIs to Rust requires quite a few ergonomic compromises. For example, the following line in C# is a call to the QuestPDF method to set the size of a page: ...
This is part of a series on Native AOT. Previous -- Top -- Next I have finally published a preview release of the Native AOT binding generator I've been working on. I wouldn't call it "production-ready" yet, but having the tool publicly available makes it more tangible and real. Folks can give it a try, and give feedback if they wish. There's a...
This is part of a series on Native AOT. Previous -- Top -- Next Developing with .NET often involves delegates, which we can think of as objects that represent things that are callable. For example: public static int count_files_with_e(string path) { return System.IO.Directory.GetFiles(path) .Where(x => x.Contains("e")) ...
This is part of a series on Native AOT. Previous -- Top -- Next So far in this blog series, I have been writing about Native AOT mostly in the context of libraries, discussing how things work at a fairly low level. For this post, I want to take a step back and look at the big picture, and the road ahead. Where is all this going? Why do we care...
This is part of a series on Native AOT. Previous -- Top -- Next As we have said, functions exported by a Native AOT library must follow the rules of C, and that means exceptions cannot be thrown. More specifically, it means that if we attempt to throw an exception past the Native AOT function boundary, the program will crash. C doesn't have...