Advertisement

FREE win32 C++ compiler?

Started by June 24, 2001 02:28 AM
17 comments, last by Zeb 23 years, 4 months ago
I think there is enought said, bloodsheed is a good Ide, but my personal pick is MingW32 in conjunction with XEmacs because XEmacs is the same thing you use in Linux (if eventualy you want to move to a real OS) and porting mingw32 to crosscompile on linux is a matter of running a script, so you could (I do sometimes) develop for windows from linux, and you get familiar with how things are done in Linux, I have to say, I saw VC++ crash many times, Emacs or XEmacs has NEVER crashed on me, and I run in in windows too!

I am currently developing a game with this combination, and is quite good for me. (yes you can compile directx apps with mingw32 -ftable-thunks )

see ya, contact me if you need any help setting them up.

Edited by - kwizatz on June 27, 2001 1:38:41 PM

Edited by - kwizatz on June 27, 2001 1:51:10 PM
quote: So... console apps... don''t have an interface? Not even text?

They can do simple in- and output, but if you want to have more control than what text strings alone can offer, you''d either have to write (complex) functions to directly read and write from system devices, like the mouse or SVGA card, or you can use the I/O functions of a more advanced API, and then you''ll no longer need the console.

quote: OpenGL or directX? Is or the operative word, or can you use both?

Usually you use one of the two, but DirectX can be used to set up a fullscreen OpenGL window IIRC, I don''t use directX, it''s too much C++ and I just use plain C.
OpenGL only offers output to the screen, input can be done with GLUT or with win32, or even DirectInput, sound can be done with DirectSound or win32 PlaySound function. In other words, DirectX is a combination of API''s for different purposes, OpenGL is only used for drawing.

I''m sorry if I didn''t make myself clear enough the first time...
Wouter
Advertisement
Null and Void, I thank you once again for being one of the only people around here intelligent enough to recognize that console != DOS.
quote: "OpenGL or directX? Is or the operative word, or can you use both?"
Tassadar: Usually you use one of the two, but DirectX can be used to set up a fullscreen OpenGL window IIRC
What does IIRC mean?

quote: I'm sorry if I didn't make myself clear enough the first time... Wouter
No time for sorrow,
save it for 'morrow

I just made that up, I must be subconsiously plagerizing someone

quote: Merlin9x9: Null and Void, I thank you once again for being one of the only people around here intelligent enough to recognize that console != DOS.
N&V does seem very intelligent to me too "!=" means "does not equal"? Damn, I can't find a slashed equal sign in the character map

 Z  eL b ul vo nColin Powell - "Finding the Russian scientists may be a problem beingthat Russia does not have a Social Security System, as here in America,that allows us to monitor, track down and capture an American citizen."   


Edited by - Zeb on June 27, 2001 7:48:42 PM
 Z  eL b ul vo nColin Powell - "Finding the Russian scientists may be a problem beingthat Russia does not have a Social Security System, as here in America,that allows us to monitor, track down and capture an American citizen."
I would recommend buying C++ How To Program 3rd edition by Deitel & Deitel and using the Intro edition of VC++ on the CD. Borland C++ 5.5 can be downloaded at borland.com (like others said). As far as it being better to learn C++ in DOS, that''s complete bull sorry. You will learn C++ much better with a 32bit compiler and making mainly apps for the Win32 console.
IIRC = "If I Recall Correctly"

API = "Application Programming Interface", basically a term for reffering to a library of related functions (ex: DirectDraw is a 2d graphics API; Winsock is a networking API; etc...)

And yes, != means "not equal", its the C/C++ way of writing it.

Tassadar: You should not use DirectX to setup a surface for OpenGL rendering. This might work on some drivers, but it's not reliable, since some OpenGL drivers might use DirectDraw internally to manage a framebuffer, so the OpenGL driver would be confused by you using DirectDraw too, and could crash (at least this is the reason I've heard). There is also no real reason for using DirectDraw to setup a surface for OpenGL, ChangeDisplaySettings should be used for making an OpenGL app fullscreen.

Sorry for getting a bit off topic, I just wanted to clarify this a little

Edited by - Dactylos on June 27, 2001 7:28:58 PM
Advertisement
Difference between console/windowed apps/dlls etc.

Console apps run in a console window (the kind of window many people (incorrectly) refer to as a DOS-box). These are not DOS programs. They need windows 95+ to run (though they generally don't need the GUI (=Graphical User Interface)). These programs are text-based.

Windowed apps are the "standard" windows applications. They open a window (or many windows) containing a user interface (GUI).

A DLL (=Dynamic Link Library) is not directly executed. Instead programs can call functions in them (provided that the function is 'exported' from the DLL and the calling program 'links' to the function in the DLL). They are used for storing common code that many programs can use, or simply for dividing a large program into smaller more manageable parts.

Then there are hybrids between the above. For example a console app can open a window just like a windowed app; and a windowed app can open a console to write to. Programs can also call functions in other EXE files (just like calling a function in a DLL). You shouldn't worry about this at this early stage though. I'm probably just confusing you, so ignore this paragraph

These are probably not very good explanations, if you don't understand what I mean, or if you would like a more elaborate description of something, then don't hesitate to ask.

Edited by - Dactylos on June 27, 2001 7:47:08 PM
quote: Dactylos:Then there are hybrids between the above. For example a console app can open a window just like a windowed app; and a windowed app can open a console to write to. Programs can also call functions in other EXE files (just like calling a function in a DLL). You shouldn''t worry about this at this early stage though. I''m probably just confusing you, so ignore this paragraph

No way Jose I think it makes sense. I''m worrying about whether or not it''s possible to do 3d graphics with curved space at this early stage, it''s in my nature to worry about the future So... if functions can be called in other EXEs... then the purpose of DLLs is to prevent the user from executing a partial program and screwing things up, yes?

 Z  eL b ul vo nColin Powell - "Finding the Russian scientists may be a problem beingthat Russia does not have a Social Security System, as here in America,that allows us to monitor, track down and capture an American citizen."
 Z  eL b ul vo nColin Powell - "Finding the Russian scientists may be a problem beingthat Russia does not have a Social Security System, as here in America,that allows us to monitor, track down and capture an American citizen."
No, the purpose of DLL''s is to have many programs use the same functions without wasting more space in your hard drive, also its purpose is to have reusable code, and being able to upgrade functions without having to recompile the whole executable, just the function library.

you can only call functions from another executable (EXE) IF that function was declared as __declspec(dllexport) or you defined it as EXPORT in a DEF File, this is not a default so forget about using functions from comercial programs unless they are in DLL''s, on the other hand if you are going to code a EXE with exported functions . . . why code it as a EXE? make it a DLL, the only valid option for this is if you want to code some app with SetWindowsHookEx and you dont want to bother writting the DLL you need to attach the hook to.

See ya.

This topic is closed to new replies.

Advertisement