Visual C++ is rallying an army on my computer...I'm scared

Started by
13 comments, last by Matt-D 11 years, 2 months ago
That can make patching tedious, though.
Yep, that's actually why I didn't even mention that option.


[EDIT No. 2] (continue to read the first edit ;) : In the following paragraph "You" is not directed at Bacterius, but to Karsten_, even though I just quoted Bacterius

[EDIT]
And there's one more thing, I'd like to add:

I am not trying to advocate / defend the "dll-hell" Microsoft has brought upon us (I still don't understand that stupid manifest-thing), but your points are just showing the usual "GOM M$ is so evil" attitude that I cannot stand anymore. The Microsoft people I've talked to (all of them are engaged with VS or similar developments [e.g. C++ AMP]), are some of the smartest people (regarding software development) I've ever talked talked to. And... guess what... they are open for suggestions and corrections in a way that I have never experienced from any other company (or open source community). So imho, Microsoft has moved from being one of the "bad guys" to being one of the companies that I would love to work for.

P.S.: Can somebody disable that editing history please... ;)
Advertisement
Or you can statically link it and not have to redistribute it at all.

That can make patching tedious, though.

Statically linking against the Visual Studios runtime can make patching tedious?

Or statically linking against libstdc++ can making patching tedious?

It makes it tedious by the size of the Visual Studio runtimes, bloating your executable size and taking longer to download the entire binary as opposed to just the changed DLLs or executable?

Windows: Patching can become problematic (when using static linkage) if you switch to a newer VS version and run an incremental update.

Linux: Patching can become problematic (when using static linkage) if you switch to a newer gcc version and run an incremental update.

I'm starting to have the feeling that the last posts are just due to some "M$ is teh evil" (sorry, English isn't my first language) troll and we should leave it at that. So, to the OP, don't worry about those entries, it's all good!


Besides: Our company (not me!) says: We support Linux! This is about the same as for a mobile app developer to say "we support android" Too many different vendors... if nothing changes there will never be a (binary distributed) program that runs on all Linux distributions. But, I can assure you, our program runs on all PCs that run Windows 2000 (yes, really) or later.

I don't think this is a "M$ is teh evil" troll but rather a cultural misunderstanding. In a Linux environment development tools and libraries are naturally considered as part of the OS; under Windows they're normally considered as separate from the OS, so someone coming from a primarily Linux background and working off the assumption that Windows works the same (big mistake guaranteed to create all manner of hilarious - and not so hilarious - misunderstandings, and yes, it also works in the other direction) sees all of these listed as separate programs and jumps to a conclusion (possibly one influenced by the "bloatware" myth too).

In fact Linux can, and does, have the ability to have multiple versions of glibc on the same machine too. See http://stackoverflow.com/questions/847179/multiple-glibc-libraries-on-a-single-host

The key difference is in a question asked above: "this doesn't need a user to install yet another runtime package does it?" - yes, I know the question was about Mingw on Windows, but it shows the root of this misunderstanding. No, it doesn't, because it's already there. If, however, you had a program that required a different version of Mingw, and if there were incompatibilities between the version, then yes, both versions would be needed. Same applies to glibc on Linux (see the SO link I posted above).

There's also another cultural misunderstanding here, whereby on Linux the typical user is a programmer, whereas on Windows the typical user is not. So the typical Windows user will download a program, it will come pre-packaged with the required redistributable components, and everything will install cleanly. So no - on Windows the typical user does not have to install another runtime; the program's installer will do that for them automatically. The typical user does not worry about these things, the typical user gets on with using their computer to be productive in other areas.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

A mingw compiled program under Windows also needs the correct dll for the mingw runtime.
Not quite.

"GCC does not include a C runtime library. This is supplied by the platform. The MinGW port of GCC uses Microsoft's original (old) Visual C runtime, MSVCRT, which was targeted by Microsoft Visual Studio 6 (released in 1998)."

MSVCRT (not to be confused with, say, msvcr100.dll -- a runtime specific to Visual Studio 10.0/2010) is an OS component that ships with Windows itself (the end-users don't have to download anything extra). The users also don't have to update to anything extra (since 1998). In other words, all of Windows users since 1998 automatically have "the correct DLL" to run a C/C++ program compiled with MinGW.

That's not to say there are no downsides in this particular case: http://mingw.org/wiki/C99

This topic is closed to new replies.

Advertisement