There Should Be Dancing Around a Bonfire!

This should be no news to anybody who has anything to do with writing and distributing C/C++ applications on Windows, but Microsoft has finally decided to drop the fucking SxS shit for Visual C++ 2010 CRT and go back to the sweet old days of plain, distributed-alongside-your-application DLL files! (Read here if you don’t believe me! I don’t know how far one can trust MSDN and how long that link will stay valid (I mean, how hard is that?! Keep your stupid fucking links valid, you idiot douche bags!) but there it is for now, and I have verified it on VC2010 RTM.)

How fucking twisted is that?! I’m actually rejoicing because we are going back to DLL Hell! But after experiencing the abyss of WinSxS Hell, I would happily crawl back to the open and only mildly tormenting depths of the good old DLL Hell. This means that I will (hopefully!) never ever have to mess around with ass-busting manifests and colossally subtle version conflicts and hunting down every single gods-damned version of every single fucking-gods-damned CRT component that might or might not have been subject to some whimsical patch by the morons at Microsoft in the past year, in one or other version of Windows. This means that I will just distribute the fucking version of the CRT that seems to barely work alongside my applications (that is, in the same directory) and it will probably (say 30% instead of 1e-10%) work, and no one will be able to override their usage behind the poor hapless user’s back (using conventional methods; that is. Everybody knows how easy it is to hijack a function call into a DLL in Windows; which I have to say is not necessarily a bad thing.)

And don’t anyone dare ask me why I link to CRT as a DLL in the first place, instead of a statically linked LIB!

P.S. I have decided to write as I think (regarding the usage of curse words.) So no more fraks and friggins and butts and backsides. Deal with it.

VN:F [1.9.13_1145]
Rating: 8.3/10 (6 votes cast)
VN:F [1.9.13_1145]
Rating: +2 (from 4 votes)
There Should Be Dancing Around a Bonfire!, 8.3 out of 10 based on 6 ratings

2 Comments

  1. MatGill says:

    My knowledge of C++ under windows is way too old to know what SxS is/was. But I really like the P.S. part of this post.

    VA:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.13_1145]
    Rating: 0 (from 0 votes)
  2. yzt says:

    I would have to say that you are lucky! And unfortunately, SxS is not dead. But Visual C++ Runtime Libraries no longer use it. Which means, since I don’t use all those other weird Microsoft shit, I don’t think that I have to deal with it anymore.

    Some technologies are like leprosy; everyone just learns enough to identify them on sight and keep the hell away. But of course there is a catch. Sometimes you have to deal with it (like me) because you have to work on Windows, with Visual C++ and many third-party libraries that also use VC CRT library. The good thing is that at least most of what I use at home and at work are opensource libraries and I don’t get into much trouble that cannot be solved with a rebuild of those.

    Basically WinSxS was supposedly a centralized system-wide database-like place to manage multiple versions of DLLs. In practice, it meant that you could not just distribute some of the most important shared-object-files with your application and have them just work on all versions of Windows. Your life became miserable just because some idiot did not keep her system libraries up-to-date, and even worse, you could not easily help her without going to some length in installing the right libraries in the right places and telling that to Windows. Your applications also needed manifests to declare exactly which version of the DLL they were going to link to. However, in typical Microsoft fashion, the old (almost well-understood) way that applications declared what DLL they would need (and what functions from that DLL,) i.e inside the binary’s headers, were not deprecated and were still used.
    All gods of torture would have to help you if your manifest and your binary headers were not saying the same thing!

    By the way, the above is not a scientific treatise on the subject. I do not, and don’t want to have any more knowledge on and contact with this subject.

    VN:F [1.9.13_1145]
    Rating: 0.0/5 (0 votes cast)
    VN:F [1.9.13_1145]
    Rating: 0 (from 0 votes)

Leave a Reply