• Advertisement

Archived

This topic is now archived and is closed to further replies.

MS Visual C++ Advice

This topic is 5550 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi! Quick question(s) for your advice to those of you who have used Visual C++ either for games, demos, etc. I'm planning on learning/getting into VC++ (speed/MS), (have done c/c++, just not really yet specifically vc++). 1. Compatibilitity with various flavours of MS's OS. (I.e., 98/XP/2000,etc). a) Any API calls that you frequently used that you had to make a special port to say NT/2000 (and do you really care about porting to those systems for games/etc?) b) Any specific commands/sequences that don't *exactly* work? (I.e., say making large arrays that work on 98, but not NT, or different types of file access required, etc). 2. Suggestions on any MS bugs/or your own that you have made to avoid? i) I.e., do you have to worry about segment boundaries for large arrays, or does VC++ automatically handle that? (i.e., say an "MS" bug) ii) I.e., -- bugs you have made and kicked yourself 10 hours later because it was really dumb, such as assigning one object to another, thinking it was making a copy? (I.e., {Object a,b; a = new Something(); b =a;}) 3. Any pros/cons you've noticed to writing your own optimization routines/ graphics routines as opposed to say using DirectX/OpenGL/etc? a) I.e., specifically compatibility issues -- say DirectX is slower than coding yourself, but have you run into many problems coding yourself when say DirectX accounts for the different OS's? b) Recommendations on whether it is a good idea or not. I.e., newer games (i.e., WarCraft III, GTA III) have certain 'system requirments' -- whereby basically someone would have to buy a new computer (video card, RAM, etc) because of the requirements -- even if the computer is just 2-3 years old -- because of the requirements. Thanks [edited by - johnnyboy on December 4, 2002 8:51:10 PM]

Share this post


Link to post
Share on other sites
Advertisement
Guest Anonymous Poster
quote:
3. Any pros/cons you''ve noticed to writing your own optimization routines/
graphics routines as opposed to say using DirectX/OpenGL/etc?
a) I.e., specifically compatibility issues -- say DirectX is slower than coding yourself,
but have you run into many problems coding yourself when say DirectX accounts
for the different OS''s?
b) Recommendations on whether it is a good idea or not. I.e., newer games
(i.e., WarCraft III, GTA III) have certain ''system requirments'' -- whereby basically
someone would have to buy a new computer (video card, RAM, etc) because of
the requirements -- even if the computer is just 2-3 years old -- because of
the requirements.


First of all, you are not going to make your software graphics routines run faster than DirectX or OpenGL can do it. They use the video hardware, your code won''t. Second, if you write code that takes advantage of new hardware, and that is what people will need to play your game, then so be it. That is how things progress. The system you bought 2-3 years ago is not gonna run DoomIII, people understand that.
For the rest of those issues, just get a good C++ book and go to town. Sounds like you are a little scared of VC++. Any reason why? I have used it for 3 or more years now and have yet to find a "bug" that was the compiler/IDE''s fault and not my own brilliant code. It is a very good programming environment, a good book will be your best bet.

Share this post


Link to post
Share on other sites
MOVSW: I have read a number of books, and have programmed
a fair amount -- however, i''ve found that sometimes it has saved
me countless hours by asking friends/etc of any ''common'' pitfalls
they have encountered, *even though* they''ve ''read a/several''
books too. Do you have any advice/experience that you can
offer?

P.S. Nice nickname

mov ax,4c00
int 21
ret

Share this post


Link to post
Share on other sites
anonposter:

Thanks for the feedback -- yes, just getting ''into'' DirectX/OpenGL, so
wasn''t too familiar with how it really worked (I was a bit reluctant before to
get into it/because of previous ''slow''/buggy versions, etc). I wasn''t sure how well
coded the directx library, etc, was -- so wasn''t sure if writing C++
routines would be faster/more efficient.

''Scared'' wouldn''t be the word -- other than I went to play with it, and
try a *baaaaaasic* example (i.e., just used the wizard for a console app,
which basically does no code whatever), tried to include some basic
headers and *one* command, and I get the message:
"unresolved external symbol _endthreadex".

I know that it is probably a pretty basic thing (i.e., it probably has to
be a windows app to do that (which I got it to work as that) -- but according
to the MSDN docs that I was using, it should have worked *fine* as a
win32 console app. So I got really frustrated just trying to figure out why it
just wouldn''t work.

So -- that''s what I''m basically asking, before I ''really'' delve into this --
is what kind of problems/pitfalls to avoid (i.e., MSDN dox ) and how
have you resolved them?

(Basically so I can save profanity for really important occasions )

Share this post


Link to post
Share on other sites
okay, persistent one.
quote:
Original post by johnnyboy
1. Compatibilitity with various flavours of MS''s OS. (I.e., 98/XP/2000,etc).


this kind of information is commonly found under "system requirements" page, as well as on google.
quote:

a) Any API calls that you frequently used that you had to make a special
port to say NT/2000


porting software is not something you do "frequently" when you''re making your own games.
quote:

(and do you really care about porting to those systems
for games/etc?)


this shows that you don''t have much user experience with windowses, which is pretty strange. everyone knows that all games should run on 2k while nt generally goes unsupported because it doesn''t run dx above v.3.
quote:

b) Any specific commands/sequences that don''t *exactly* work?


would you like a list of bugs i fixed in the past five years in all my programs?
quote:

(I.e., say
making large arrays that work on 98, but not NT


where did you get this idea?
quote:

or different types of file
access required, etc).


and this kind of information is available in msdn under whatever function is of your interest.
quote:

2. Suggestions on any MS bugs/or your own that you have made to avoid?


yes, read the docs.
quote:

i) I.e., do you have to worry about segment boundaries for large arrays,


you know about those issues and aren''t sure which operating systems they apply to? really strange.
quote:

or
does VC++ automatically handle that?


what''s this supposed to mean?
quote:

(i.e., say an "MS" bug)


didn''t you get a hint from the last thread that bashing ms without a good reason doesn''t win you any friends?
quote:

ii) I.e., -- bugs you have made and kicked yourself 10 hours later because
it was really dumb, such as assigning one object to another, thinking it
was making a copy? (I.e., {Object a,b; a = new Something(); b =a;})


get a book.
quote:

3. Any pros/cons you''ve noticed to writing your own optimization routines/
graphics routines as opposed to say using DirectX/OpenGL/etc?


get some common sense.
quote:

a) I.e., specifically compatibility issues -- say DirectX is slower than coding yourself,
but have you run into many problems coding yourself when say DirectX accounts
for the different OS''s?


are you pulling this stuff out of thin air?
quote:

b) Recommendations on whether it is a good idea or not. I.e., newer games
(i.e., WarCraft III, GTA III) have certain ''system requirments'' -- whereby basically
someone would have to buy a new computer (video card, RAM, etc) because of
the requirements -- even if the computer is just 2-3 years old -- because of
the requirements.


you''ll realize why applications have system requirements, particularly ones concerning rapidly developing hardware/software, once you''ve programmed one.

it looks like you expect someone to write you a step-by-step guide on how to make a game right here on the forums. realize that this is not going to happen, and get a book. bring your specific questions here, and research yourself first.

make it a habit to visit google before clicking "new post" button.

and html supports word wrapping, why are you inserting hard newline breaks?

Share this post


Link to post
Share on other sites
niyaw:
b) Any specific commands/sequences that don''t *exactly* work?
>>would you like a list of bugs i fixed in the past five years in all my programs?

actually, yes, that would be great.

Share this post


Link to post
Share on other sites
You know, if you were truely interested in gamedevelopment, you wouldn''t want someone paving the way, making sure that you never fell down. That''s how we all learn, we fall down and get back up. I''m sure you have learned to walk by now, so you must know what I am talking about.

There are never any "computer" errors, only Human errors. "We err, because we are Human". It seems as though you are looking for one tiny mistake on Microsoft''s part so that you can have an excuse to not use their software. Think about it: Millions of *huge* corporations are using MSVC, not to mention a lot of independant gamedevelopers. If there were the type of bugs you have been talking about, I doubt anyone would use MSVC.

As a game developer, or any programer for that matter, you have to assume that the bug was created by you. It really makes no sense to say, "Oh no! I have an out of bounds pointer! Let me go search through hundreds of documents to see if I can blame this on Microsoft!". Most bugs are very small bugs, small and hard to find (like mispelled variables, etc).

Also, you have given a very clear impression of a beginning game developer. As a beginning game developer, you shouldn''t be so fixated on making sure that your program works on every single operating system invented. Heck, you''ll be lucky if it works on you *own* computer. I get the impression that you don''t want any programming help, but just want to have another reason to bash Microsoft, which is totally insane.

Get a life, or program and become a geek!

¬_¬

Share this post


Link to post
Share on other sites
quote:
Original post by johnnyboy
''Scared'' wouldn''t be the word -- other than I went to play with it, and
try a *baaaaaasic* example (i.e., just used the wizard for a console app,
which basically does no code whatever), tried to include some basic
headers and *one* command, and I get the message:
"unresolved external symbol _endthreadex".


That''s funny. _endthreadex works just fine for me in a console app created by the wizard. You did, of course, switch to the multithreaded runtime library, as MSDN quite clearly states you must do, right?
quote:

So -- that''s what I''m basically asking, before I ''really'' delve into this --
is what kind of problems/pitfalls to avoid (i.e., MSDN dox ) and how
have you resolved them?


Avoiding MSDN docs while programming for Win32 is roughly the equivalent of shooting yourself in the foot multiple times.

Share this post


Link to post
Share on other sites
>>>Heck, you''ll be lucky if it works on you *own* computer

ROTFLMAO! It''s funny, because it''s so true...

Share this post


Link to post
Share on other sites
geez, this is kind of silly... ask a simple question and somehow
it is "ms" bashing...

niyaw: are you just deliberately miscontruing my statements to
argue for arguments sake, or is english not your first language in
which case I should explicitly state to you what I am talking about?

1) Yes, duh, of course google can help - it doesn''t always work, and
also many times you have to sift through pages (including ranting like
yours). And I *have* found functions which *supposedly* work on
different OS''s according to the dox, but which, in fact, don''t, and
only when you do research on MS''s website, searching for long periods
of times, *may* you actually find a doc that says "oops, our bad".
(And so you don''t "miscontrue" that statement, no, microsoft does not
*actually* say "oops, my bad", it is an expression -- sometimes microsoft
accepts responsibility and posts a patch/workaround/whatever, sometimes
they do not.

2) Actually, if you have a popular game, yes, you *do* port to different OS''s.
However, I wanted to know what people''s experience has been on Windows
OS'', whether their is a demand to run on NT machines, 2000 (supposedly for
business), etc, etc.

>>knows that all games should run on 2k while nt generally goes unsupported because it doesn''t run dx above
>>v.3.

Thank-you, this is actually a somewhat useful comment, and along the lines
of what I was asking for/feedback.

>you know about those issues and aren''t sure which operating systems they apply to?
>>really strange.
It''s called an "example". I.e, = example, to demonstrate the type of information I
am looking for.

>>>>(i.e., say an "MS" bug)
>>didn''t you get a hint from the last thread that bashing ms without a good reason doesn''t win you any friends?

Are you just slow, or just trying to provoke a flame war?
"MS Bashing" would be when someone simply says "microsoft sucks, microsoft sucks"
etc etc, without any reasons. Getting upset because MS''s system is flawed, and when
something is supposed to work and it doesn''t, isn''t. Are you saying that MS has no bugs
whatsoever, and perhaps the security, software, etc patches they issue on almost a
daily basis are for fun? Likewise, if someone said "niway sucks because he makes so
many stupid comments and simply tries to provoke flamewars rather than answer a simple
question", that would not be "bashing".

>>and html supports word wrapping, why are you inserting hard newline breaks?

Well, to quote your words, I *could* simple say "get a book", or
"make it a habit to visit google before clicking "new post" button.", but rather than
make absurd comments like that, it is much simpler to explain that not all browsers
display this forum correctly, unless you have the latest/greatest MSIE installed on
your system.

Share this post


Link to post
Share on other sites
fuzztrek: if one is truly interested in game development, they try
to learn as much as possible. If one can learn 10 different items in
1 hour, rather than spending 1 hour trying to figure out why 1 item
doesn''t work, then that frees up a lot more time for actual *game*
development, rather than "bug" hunting.

Why don''t you "Get a life", and if you simply don''t know the answer/
don''t have that much experience, just say so? Or, if you do have
experience, please share it, or take these ''witty'' retorts to some other
forum.

Share this post


Link to post
Share on other sites
The truth is johnnyboy that you really don''t want to avoid the pitfalls and all the debugging. I''ve found that I''ve learned as much if not more from searching through frustrating code for an hour to find one missing '';'' then actually getting things to work. The reason is that I began to understand more and more of how the code worked together and reinforced good programming practices (I''ll never again program without comments). Don''t worry about testing the water first just jump right in and be forced to learn how to swim.

If you don''t take chances you''ll never push boundaries.

Share this post


Link to post
Share on other sites
quote:
Original post by johnnyboy
fuzztrek: if one is truly interested in game development, they try
to learn as much as possible. If one can learn 10 different items in
1 hour, rather than spending 1 hour trying to figure out why 1 item
doesn't work, then that frees up a lot more time for actual *game*
development, rather than "bug" hunting.

Why don't you "Get a life", and if you simply don't know the answer/
don't have that much experience, just say so? Or, if you do have
experience, please share it, or take these 'witty' retorts to some other
forum.



Obviously you have not read my post, and obviously you do not want any "help". Witty retorts ? Do you even read your *own* posts? "Bug hunting".. wow you are dense. Bug hunting is a *part* of game development. Unless you want to release software that's going to crash everyones computer, you NEED to bug hunt. It's only logical. There are a million things that all newbies find out eventually, but they only find out by actually doing something instead of sitting on their butt complaining in the forums.

If you have a specific problem, post it here, but do not start bashing Microsoft. No one is agreeing with you. It is people like you who ruin the community. Please post with respect. We do not owe you anything, you should be grateful that we are even acknowledging your post.

quote:

If one can learn 10 different items in
1 hour, rather than spending 1 hour trying to figure out why 1 item
doesn't work, then that frees up a lot more time for actual *game*
development, rather than "bug" hunting.



Quality, not quantity. This is just common sense. Learn one thing at a time. How are you going to fix 10 things at once?!

Repeat:
*flummoxed.. roll eyes*

Moderator, please moderate.

¬_¬

[edited by - Fuzztrek on December 5, 2002 2:24:51 PM]

Share this post


Link to post
Share on other sites
fuzztrek: how old are you? please see comments to niyaw,
as it apparently applies to you as well. Similarily, "ms bashing"
would be saying "microsoft sucks" over and over with no reason,
and conversely saying something like "fuzztrek sucks because he
jumps on the bandwagon without really knowing what he''s talking
about" would not be bashing.

>>We do not owe you anything, you should be grateful that we are even
>> acknowledging your post.

Seeing as you have not yet offered one iota of actual ''useful'' information,
other than getting off on what you perceive to be insults and ranting, if
you refrained from posting that would be something to be grateful for, and
that could be acknowledged.

Share this post


Link to post
Share on other sites
quote:

Why don''t you "Get a life", and if you simply don''t know the answer/
don''t have that much experience, just say so? Or, if you do have
experience, please share it, or take these ''witty'' retorts to some other
forum.

I''m going to defend Fuzztrek because it is more credible then himself saying he is a experienced programmer.

I don''t know if Fuzztrek is an experienced programmer or not but I''ve read a lot of his replies and he is very knowledgable.


Also I believe that his "Get a life" comment was not an attack if you read the rest of the quote "..or become a programmer and be a geek" then you would realize he is just trying to be funny.

A suggestion I''d like to make to you jonnyboy is this, first make a game then worry about porting it over to other OS''s. Once you''ve finished making the game come back to the forum and ask specific questions on why you can''t port it over to 2000 and I''m sure people will help you.

Share this post


Link to post
Share on other sites
I find it ironic that everyone in the lounge is complaining about over-moderation, and all the posts I look into here have people asking for moderators to step in.

I have hope that johnnyboy will figure out how to get the most out of the board. Honestly, this is the kind of question I''d used to respond-to by posting a link to gamedev''s search, but since that feature''s disabled we''re going to have a lot of this. I know he''s rubbed some people here the wrong way with his last post (myself included), but these are genuine questions. Unfortunately, they''re not good questions.

johnnyboy, there are two main problems with your question(s):
- Some can be answered by reading the documents that come with VC++. Members here, fairly or unfairly, are usually hostile to perceived laziness.
- Some are way too general (e.g. "Any bugs you guys run into?"). These questions generally don''t have any answers you''ll be happy with, and are again perceived as lazy. You haven''t even said which version of VC++ you''ll be using; the known issues list (available in MSDN, of course) are different for different versions, of course.

Here''s how you''ll get good responses from us:
- Ask specific questions about one issue at a time.
- Research the answer first on your own.
- If you run into problems, post the code with the error text.

HTTP 500 strike 1..

Share this post


Link to post
Share on other sites
quote:
Original post by ph33r
Also I believe that his "Get a life" comment was not an attack if you read the rest of the quote "..or become a programmer and be a geek" then you would realize he is just trying to be funny.


Funny, I just thought it was his profile signature.

Share this post


Link to post
Share on other sites
TechnoHydra: thanks for your reply.
Although yes, I do understand the advantages (i.e., if you forget one
little semicolon and it takes you 10 hours to find it, you won''t make *that*
mistake again), -- i''ve gotten to where if where if I make some kind of
mistake, I make sure I check those things first, and if I can have a list of
items, that helps even more, and it is just too time-consuming/can''t really
afford spending 10 hours just to find a semicolon.

So if you could offer some tips/advice from your experience of game
development, basically along the lines of, "If you get errors:":

1) Check your semicolons. The compiler will still compile your code, but
it may give you odd results.
2) Check array sizes, as this can cause ... etc
3) etc, etc.

That would be *very* useful!

Thanks!

Share this post


Link to post
Share on other sites
quote:
Original post by johnnyboy
So if you could offer some tips/advice from your experience of game
development, basically along the lines of, "If you get errors:":

1) Check your semicolons. The compiler will still compile your code, but
it may give you odd results.
2) Check array sizes, as this can cause ... etc
3) etc, etc.

That would be *very* useful!

Thanks!


Why? Are you writing an expert system for game programming?

How about, instead of trying to compile some imaginary list of game dev no-nos, you actually start writing a game, thereby learning something useful?

Share this post


Link to post
Share on other sites
Hi Stoffel: thanks for your reply.

Ok, perhaps I should be a bit more specific. I am using MSVC++ 6.0.
Specifically, what I am looking for is:

1) A list of one/two lined statements of common pitfalls that ''you'' (i.e., anyone)
has experienced. I.e., those kind of bugs that took you 10 hours to debug in
your code, print countless printf statements, only to find out, that "duh!" you
forgot to do _x_. For example, I''ll list some of the ''common'' ones, but if you
have anything specifically related to your personal experience, that is what I
am looking for (and doesn''t have to be long, just 1-2 lines like "watch to make
sure you do ____"). I.e., a list like:
a) Make sure you have semicolons after all your statements.
b) Make sure you initialize _____., etc.

2). I am looking for either a good resource, or any ''pitfalls'' you have experienced
in terms of ''bugs'' (i.e., MSDN ''errors'', or API bugs on XP/2000, etc), that may
not be covered in the MS site. I am not aware of this page a few people seem
to have mentioned, (please post a link) that lists recent ''changes'' or ''document''
changes on the MS site. Aside from that -- I am also looking for anything that
you have encountered that is *not* listed on the MS site, but that you found
to be a major issue. I.e., a list something like this:
a) Function XYZ does not work in 98, MS hasn''t updated it, but I found it really
frustrating until I figured this out, etc.

I hope this helps clarify it.

Share this post


Link to post
Share on other sites
here''s a common pitfall for you:

assuming ms software doesn''t work when you don''t know what you''re doing.

here''s another one.

i spent five days trying to understand why function "CreateWindow" was undefined, when msdn clearly stated that you needed to include windows.h.

and a true story.

i gave up programming because m$ bugs were preventing my code from compiling, running, and i was getting bluescreens from windows anyway. as a true micro$oft follower, i switched to linux, freebsd and some other operating system which name i don''t know at the same time. unfortunately, m$ bugs were still haunting me, and neither of the abovementioned operating systems was able to compile or run my code. then i followed the lead of one of the apple $witch commercials and got my$elf a powerpc, but unfortunately, m$ bugs were STILL there. frustrated, i wowed to never use m$ products again.

Share this post


Link to post
Share on other sites

  • Advertisement