by lowleveldesign on 1/29/22, 5:11 PM with 69 comments
by davidpolberger on 1/30/22, 9:40 PM
I tried to make sense of how all these disparate technologies fit together. Give it a read if you like (CC-licensed):
http://www.polberger.se/components/
by RantyDave on 1/30/22, 9:00 PM
DCOM was awful.
by 0x0 on 1/30/22, 9:14 PM
by mwattsun on 1/30/22, 7:51 PM
Graham Lee blog post about Brad Cox's Object-Oriented Programming:
In 1714, Gottfried Leibniz published La Monadologie, in which he proposed that at the fundamental level, objects are made of indivisible entities called Monads. You can’t see inside a monad, it has an internal state that controls its actions and passions. Monads can be created or destroyed atomically, but cannot be partially built or partially annihilated because they are a “simple substance without parts”.
Cox, on the other hand, opens with the story of Eli Whitney and the industrial revolution. For Cox, the industrial revolution is not primarily about machinery and the harnessing of steam and coal power. It’s about the replacement of artisanal, cottage manufacture with scaled-up industrial processes that depend on well-specified interfaces between standardized, interchangeable parts.
https://web.archive.org/web/20191220204822/https://deprogram...
by Const-me on 1/30/22, 9:06 PM
There's nothing wrong with exporting factory functions from DLLs. Microsoft does it all the time, APIs like Direct3D, DirectDraw and Media Foundation don't come with type libraries are they aren't registered anywhere.
Speaking about support libraries, I once made my own: https://github.com/Const-me/ComLightInterop/tree/master/ComL... Compare examples from that article with this one: https://github.com/Const-me/ComLightInterop/blob/master/Demo... That source file is the complete DLL which implements a minimalistic COM object.
by jbandela1 on 1/31/22, 1:24 AM
https://github.com/jbandela/cppcomponents
* There is no code generation or IDL files
* Components implement IUnknown
* You can have Constructors and static functions for C++ classes.
* You can take std::vector, std::string, std::tuple as parameters and return them (even if you are using different compilers and standard libraries)
* Cross-platform
by userbinator on 1/31/22, 3:55 AM
Here's a fun contrast/example:
https://docs.microsoft.com/en-us/windows/win32/dlgbox/using-...
https://docs.microsoft.com/en-us/windows/win32/shell/common-...
Non-COM: fill in a structure and call a function.
COM: make a dozen (doubly-)indirect function calls.
by MichaelMoser123 on 1/31/22, 4:29 AM
I mean, if one would tattoo some software architecture, then one would have to change the tattoo every ten years, as the subject inevitably becomes obsolete; bother!
well, almost everything becomes obsolete, with the exception of Unix; that fact could serve as an indication for the alien origin of this operating system ;-)
Another flashback from working with Windows: the MSDN CDs had the best documentation that i ever saw; no one comes even close...
by tezheng on 1/31/22, 4:28 AM
by hbarka on 1/31/22, 7:21 AM
by pronlover723 on 1/31/22, 4:22 AM
by mandarax8 on 1/30/22, 8:45 PM
by jmull on 1/30/22, 7:12 PM