msvcrt mistakes [closed] - windows

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
May be I'm missing something (Surely I do) but I don't understand a thing :
Each brand new version of Visual Studio is shipped with a particular msvcrtxx (msvcr100.dll, msvrct.dll, ...)
Right.
Except the fact it leads, often, to the famous "dll hell", I still don't understand why the "Windows Driver Kit" continues to produce binaries linked against the old MSVCRT.DLL !?

Windows always ships with an old, barebones version of MSVCRT, specifically so that drivers can have some basic runtime support without having to ship their own copies of the library. It's appropriate for drivers but no for higher level user-mode applications.
Each version of VS C++ ships with newer versions of the runtime libraries because the library standards (and support for the standards) is evolving. Sometimes these evolve in a way that's not backward compatible, so you can't guarantee that an older program, compiled against an older version of the DLL will work with a newer version of the DLL. By making the files explicitly versioned, much of the so-called DLL Hell problem is avoided. (DLL Hell is really only a problem if you make bad assumptions and design bad installers, especially nowadays with side-by-side versioning, merge modules, etc.)
Apps have to redistribute copies of whichever version they require, as there is no guarantee that the libraries they depend upon will exist on the computer.

Related

Where is glcorearb.h supposed to come from, and where is it supposed to live in Windows? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
I am trying to build jpeg_gpu, and the current Visual Studio error is "Cannot open 'GL/glcorearb.h' ".
I can find the file 'glcorearb.h' online at khronos.org, but I'm not entirely sure if I am supposed to just fetch this one file, or if it's supposed to be installed as part of some other library. It doesn't seem to come as part of GLFW or GLEW.
What is the most sensible way to obtain glcorearb.h? On its own, or as part of a larger library?
If it should be downloaded on its own, where is the most sensible place for it to live on a Windows machine for Visual Studio to find?
Khronos is the official group for OpenGL matters. They publish the headers.
People at GLFW, GLEW, VS, or whatever, download the headers and incorporate in their code. Sometimes they do some small changes, mainly for 32/64 bit types or compiler adjustments.
If you compare glext.h and glcorearb.h you will see that the later doesn't include any stuff for OGL before 3.2, while the glext.h contains all. So, general libs (like GLEW) will provide and use glext.h instead of glcorearb.h.
If your code requires glcorearb.h then just fetch it from Khronos and put it in the same folder where glext.h is.

which os supports which compilers [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 8 years ago.
Improve this question
I'm working on a paper for school and I was wondering which compilers are supported by which operating systems.
I know Mac supports C and C++ (I know they're not that different but to me they are 2 different languages)
I was wondering which compilers/languages are supported by windows, which by Ubuntu and which by Mac.
Sorry for asking a straight question but i think there's people who know this straight away.
thanks
"Support" is a relative term here. At one extreme, I think if you have a computer with just about any version of Linux installed (Ubuntu is just one variety), if that version of the O/S isn't too stripped-down you will already have a compiler for C and C++ . If you just installed Windows, however (or got a new Windows computer from the factory), you almost certainly have no C or C++ compiler there and must obtain and install one. (There are various choices.) So Windows does not "support" C and C++ as well as Linux does, in that sense.
At the other extreme, just about any compilable language can be compiled on any of those three platforms ... if you are willing and able to write your own compiler.
In between those two extremes, you would have to ask whether someone anywhere has already written a compiler for that language on that platform, and whether you can obtain a copy of that compiler. Most of these are "third-party" software packages, so knowing which ones exist is partly a function of how well the compilers have been advertised. Even the Wikipedia page on this topic says its list may be incomplete. On the other hand, it's likely you have never heard of most of the languages that are listed there.
Wikipedia has a list of compilers and OS support here: https://en.wikipedia.org/wiki/List_of_compilers

Designing a makefile for installing / uninstalling software that I design [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
I'm writing a compiler and there are certain things that I simply can't do without knowing where the user will have my compiler and its libraries installed such as including and referencing libraries that add built-in functionality like std I/O. Since this is my first venture into compilers I feel that it's appropriate to only target Linux distributions for the time being.
I notice that a lot of compilers (and software projects in general) include makefiles or perhaps an install.py file that move parts of the application across the user's file system and will ultimately leave the user with something like a new shell command to run the program, which, (in a compiler such as python's case) knows where the necessary libraries are and where the other necessary files have been placed in order to run the program properly.
How does this work? Is there some sort of guideline to follow when designing these install files?
I think the best guideline I can give you at a high level would be:
Don't do this yourself. Just don't.
Use something like the autotools or any of the dozen or so other build systems out there that handle much of the details involved here for you.
That being said they also add a certain amount of complexity when you are just starting out and that may or may not be worth the effort to start with but they will all pay off in the end assuming you use them appropriately and don't need anything too extensively specialized that they don't provide nicely.

Is there anyway to get "glu.h"? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 9 years ago.
Improve this question
I have a very old C++ project using OpenGl and now I want to recompile then upgrade it. But I lost my old OpenGL SDK and so far it hasn't been found yet. I think "glu.h" is outdated and it seems like doesn't appear in newer versions of OpenGL, and I've tried many times but no luck. Could anyone tell me where to get the old package of OpenGL that contains glu.h, in order to help me compile & upgrade my old project properly?
GLU is not part of OpenGL and never got updated beyond the old version that's shipped with practically all Windows compiler suites.
But I lost my old OpenGL SDK
How can you loose that if there's no such thing? Like I already wrote practically every compiler suite for Windows ships with OpenGL headers and libraries for OpenGL-1.1 (that's what the Windows opengl32.dll ABI natively supports) and GLU.
For anything beyond OpenGL-1.1 you must use the extension mechanism to post-load further functions.

Modern version of WinDiff? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
VB6 came with WinDiff.
Is there a free modern version of WinDiff available that is able to ignore case?
Along with WinMerge and the WinDiff from the latest SDK, I also have SourceGear's free DiffMerge.
I use WinMerge (which hasn't changed for a while either -- don't ignore blank lines; that exercises bugs) most, especially its ability to open two blank editable pages and you can paste anything, such as from a Remote Desktop to a machine that does not have any visual diff installed, and the differences automatically (or manually if you prefer) update.
DiffMerge's feature I like is its display of differences, which seems to cater for spuriously different line breaks better.
And, to answer your question, the WinDiff from the latest SDK (or at least the one included with Visual Studio 2010), WinMerge, and DiffMerge can all ignore case.
WinDiff is part of the Windows SDK, it still ships with it. But no, the SDK is targeted to programmers that write code in case-sensitive languages, C and C++.
The source code of WinDiff was once part of the SDK samples. You can still get it from this web page, assuming you're into hacking C code and have an old compiler laying around. You'll need to adapt line.c, the line_gethashcode() and line_compare() functions. Lower-casing the line is easiest.
Well, that was the programmer's answer. Plenty of other fish in the sea, Beyond Compare typically gets a lot of nods.

Resources