That was kind of sorted out with the COM improvements in .NET 4.0 and SafeHandles.
Re:Rust/WinRT Public Preview
by Ididntdothis on Friday May 01, 2020 @10:23AM
(#23042245)
Can you give more detail?
Re:Rust/WinRT Public Preview
by jfkebwjsbx on Thursday April 30, 2020 @05:58PM
(#23036678)
What is the point of "In process COM"? Is the same as any other library?
I thought COM was meant to communicate between processes?
Any enlightenment is appreciated...
COM is primarily used in-process, it exposes an ABI that allows multiple languages to operate on a common object model within the same process. That's why you can import COM controls into a .Net application by referencing the DLL in your project and work with them as if they were native CLR objects - or Python, Ruby, Perl, etc. for that matter.
It lets you use libraries written in numerous supported languages with a richer, more object oriented interface than a C ABI. You can use the same underlying interface to call out of process or distributed objects.
Re:Rust/WinRT Public Preview
by Ididntdothis on Thursday April 30, 2020 @06:25PM
(#23036947)
COM is Common Object Model. What you mean is OLE. In process COM calls are basically direct DLL calls and therefore very fast.
Is these problems fixed with AOT C# (CoreRT)?
Edit: I should add that C# isn’t the best language for COM because it doesn’t release objects when they go out of scope so you either have to release everything manually or wait for the GC to kick in which can cause memory problems. VB and C++ and even PHP are better that way.