Hacker News new | ask | show | jobs
by Const-me 3130 days ago
Right, C# is OK when C code calls into it.

https://stackoverflow.com/a/5235549/126995

2 comments

One neat trick with .NET on Windows, is that you can actually export static methods in assemblies as unmanaged entry points. In other words, things can LoadLibrary/GetProcAddress them, and invoke them as native.

C# doesn't support this out of the box, but it can be easily done by post-processing the generated assembly. There's a NuGet package for that.

https://www.nuget.org/packages/UnmanagedExports

I'm not sure if any of that works on other platforms, or with .NET Core. Probably not.

I once tried to use that trick, for nVidia optimus integration.

Didn’t work because that recompilation step broke debugger, and invalidated .PDB debug symbols.

To be clear, I’m not saying it’s not possible. I’m saying that one less runtime is an advantage.