Quote:
Originally Posted by botmeister
This is nuts, must be Microsoft's way of locking you in. I recommend you use another compiler unless you don't care.
|
MSVC can be configured to work correctly
(to support and compile ANSI standard code), but defaultly it adds Microsoft's shite
(like precompiled headers and all that strange thing that Appwizard adds).
I'm using it, because I'm familiar with editor and it is easy to code in it
(for me).
Also MSVC 6.0 added less microsoft's incompactible stuff than .NET
I'm working now on some program that has to run under linux, and using editors other than Visual studio would slow me down. So far, I 'encountered' these problems :
- MSVC adds
#pragma once in header files, which is obsolete. G++ compiles without problems, but It is better to use
#ifndef ... #define ... #endif
- MSVC uses precompiled header shite, and I had to change
#include "StdAfx.h" to #include "stdafx.h" cause of case sensitivity on linux systems
- If you create a new class in Classview, the files MSVC creates are case sensitive so I had to covert them to lovercase.
(#include "something" was lowercase ->OK)
- However, MSVC typed
#include ".\something.h" so I had to change it to
#include "something.h"
- MSVC .NET included <tchar.h> and added lot of shite like _tmain, and _tchar. It is UNICODE support and it is not ANSI standard imo, so I couldn't compile it under g++. I had to change
_tmain to main and
_TCHAR to char. ALso I had to
remove #include <tchar.h> from stdafx.h
- If you change precompiled header (stdafx.h), it is pain to compile program in MSVC, 'cause MSVC forgets to compile it. You have to go to project properties and somewhere there under C++ tab, you must choose
compile precompiled headers
after all those changes, code compiles well under linux, and program runs perfectly
(I had to create makefile, indeed).
Also to note that if you srand(0) under windows and linux, it gives you another set of random numbers
After all these problems, I still use MSVC, cause I often do MFC programs under windows and MSVC .NET has some nice features like
outlining and
task list