You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'd like to clarify a couple of things for myself regarding DllExport that are still obscure to me.
Is there any support for platforms other than Windows? I.e., is it possible to export C# library into an .so library for Linux?
What exactly happens when we export using DllExport? Does it AOT-compile everything to native code and statically link it together in the DLL or it would require .NET Framework installed on the end-user machine anyway?
The text was updated successfully, but these errors were encountered:
All this are possible through mscoree.dll that processes the all communications with unmanaged layer through mechanism known as PInvoke, but vice versa:
Generally, the all .NET Modules (I mean .dll or .exe) initially contains injected a common entry point DllMain by default with _CorExeMain / _CorDllMain -> mscoree.dll
That's why we can't use DllMain by default - #5(but as I said there, we can still inject anything else :))
DllExport prepares records via .export directive for ILAsm compiler (please note, it's specific directive for ILAsm compiler only, i.e. it's not IL instruction for VM at all). Then, ILAsm will just prepare required PE records (see mscorpe part with generator etc.)
yes, as you already noticed, we can be more flexible than current implementation via ILAsm & ILDasm
That is, clr is a core handler of this mechanism, and it all depend on this as you can see. But the using still is simple/or standard as is LoadLibrary/Ex -> GetProcAddress.
Hello,
I'd like to clarify a couple of things for myself regarding DllExport that are still obscure to me.
.so
library for Linux?The text was updated successfully, but these errors were encountered: