|
Really? Could you give me advice?
|
|
|
|
|
|
Hello everyone!
Can anyone help me here? I really don't see why this code doesn't work...
class Game<br />
{<br />
Graphics *gfx;<br />
<br />
int player_x, player_y, car1_x, car1_y;<br />
<br />
int gUpKey, gDnKey, gLtKey, gRtKey;<br />
<br />
bool inCar;<br />
<br />
public:<br />
Game(void);<br />
~Game(void);<br />
bool Respond();
void PlacePlayer(int x, int y);
int Init(Graphics *gfx);
};
I get the following errors:
c:\Incoming\War Game\Game.h(7): error C2143: syntax error : missing ';' before '*'<br />
c:\Incoming\War Game\Game.h(7): error C2501: 'Game::Graphics' : missing storage-class or type specifiers<br />
c:\Incoming\War Game\Game.h(7): error C2501: 'Game::gfx' : missing storage-class or type specifiers<br />
c:\Incoming\War Game\Game.h(24): error C2061: syntax error : identifier 'Graphics'<br />
Why is that? Thanks!
BTW: Line 7 is the 3rd one, and 24 is the one before the last one...
-- modified at 23:14 Monday 24th July, 2006
|
|
|
|
|
Kixdemp wrote: and I'm starting to think it's the crappy VC++ 2003 I'm using...
Nope, its not. You have to have Graphics defined or atleast a forward reference before this statement otherwise this statement will fail on all cpp compilers (at least the ones I know of)...
Place this statement before class Game:
class Graphics;
John Last modified: Wednesday, July 26, 2006 4:55:14 PM --
|
|
|
|
|
You might start off by telling it what "Graphics" is. It doesn't have a clue until you point it to the library and headers if that is refering to GDI+
|
|
|
|
|
|
The Graphics class is central to GDI+ the same way CDC is to MFC graphics output so it was the natural choice for a guess.
Glad to hear you got with a forward declaration.
|
|
|
|
|
|
Hey all,
How dO I decide waht is the timer identifier(the first parameter) number in SetTimer function?
It should be a nonzero number, but is there any condition that determines this number?
or can i give any number from 1 to anything?
Thanks,
|
|
|
|
|
It can be anything you want. Typically, you would define or declare a constant symbol for it somewhere. This is your nIDEvent that you use during OnTimer events to figure out which timer is going off and when you KillTimer().
|
|
|
|
|
Hi,
I need to be able to read & write to a PCI Digital Input/Output card, and i'm going to be using VC++ 6.0/MFC on a WinXP machine to accomplish this. If I am correct, I believe Windows will not allow direct communication to an I/O port...The manual that came with the card (no software drivers) had some programming examples in which 'outportb' & 'inportb' function calls were used to write and read data respectively...but unfortunately these functions are not recognized by vc++.
Could someone tell me if I am missing any library files that I need to include?
I apperciate the help....Thanks
|
|
|
|
|
In any current version of windows (2K,XP,...) this is a statement that is not allowed by the operating system. There are two ways around this either write a device driver or use one of the open port device drivers that are available on the net. Sorry, I can not think of a link right now.
John
|
|
|
|
|
As John Drescher suggested, use a "port access" library.
I have personally used inpOut32.dll http://www.logix4u.net/inpout32.htm[^] - works like a dream.
The only problem I remember is that the documentation was not clear regarding data size. I think that it does 8-bit inputs and outputs, so if you want to read a 16-bit value, you have to read from an odd port and from an even port, shift one byte by 8, and add, etc. And if you want to write a 16-bit value, you have to split it to two 8-bit outport32 calls.
For example, if you want to read a 16-bit status from port 0x302:
usStatusTemp1 = inp32(0x302);
usStatusTemp2 = inp32(0x303);
usStatusWord = usStatusTemp1 + (usStatusTemp2<<8);
|
|
|
|
|
I have inherited some C++ code compiled under VS 2005. I would like to generate a list of the external dependencies now that the dev environment no longer lists them. Are there any tools/ addins that can do this? Thanks.
|
|
|
|
|
|
I would like to plot a basic collection of data into a 2d line graph.
I am writing the rest of my program in Visual C++.NET as an MFC app so I would like to stick with a solution that will utilize this.
I would like to make something simple like this (only add labels for each axis):
Click for Picture
anyone have any ideas???
-- modified at 16:46 Monday 24th July, 2006
|
|
|
|
|
|
Forgive me for being the late bloomer, but I haven't had the need to add Automation support to a project using VC++ 2003 until today.
In VC++ 6.0, I was able to add a class, give it automation support, and declare the methods and properties fairly painlessly and the wizards would do most of the .idl and map stuff for me. I'm probably not standing on my head just right today or VC++ 2003 approaches this in a modified way. Is the process of adding automation support to a class performed manually now? Or is there a trick to getting the .idl and maps to get populated automagically as I add my methods to the class?
-- modified at 16:39 Monday 24th July, 2006
The project has Automation support (i.e. I checked the "Automation" checkbox during project creation.)
|
|
|
|
|
Why I can't find this stuff until after I post a question here, I'll never know.
Anyway, I found the context menu for adding methods and properties over the interface icon.
Sorry about the post.
|
|
|
|
|
function strcmp seems to be returning zero (0) while it is expected to return a negative value when, for example strSentence[1] = "this is a test" and strSentence[2] = "another test".
int iLineNumber = 1;
int x = (strcmp(strSentence[iLineNumber], strSentence[iLineNumber + 1]) < 0);
int y = NULL;
while (iLineNumber < iMaxLineNumber)
{
if ((bAscending == true) &&
// lines are not empty
(strSentence[iLineNumber]!= 0) &&
(strSentence[iLineNumber + 1]!= 0) &&
// first line is smaller than the following line
(strcmp(strSentence[iLineNumber], strSentence[iLineNumber + 1]) < 0))
{swapPos(iLineNumber, iLineNumber + 1);}
else if ((bAscending != true) &&
// lines are not empty
(strSentence[iLineNumber]!= 0) &&
(strSentence[iLineNumber + 1]!= 0) &&
(strcmp(strSentence[iLineNumber], strSentence[iLineNumber + 1]) > 0))
{swapPos(iLineNumber, iLineNumber + 1); }
iLineNumber++;
}
Jon
|
|
|
|
|
Actually strcmp[^] should return >0 for strcmp("this is a test", "another test").
|
|
|
|
|
jon_80 wrote: strcmp(strSentence[iLineNumber], strSentence[iLineNumber + 1])
jon_80 wrote: strSentence[1] = "this is a test" and strSentence[2] = "another test"
If your first line starts with a 't' and your second line starts with an 'a', strcmp will return >0. Since you are only checking for <0, it will pass that test. You probably want to change your test to either >0 or simply !=0 and then see which order it should be in.
If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week
Zac
|
|
|
|
|
I'm actually checking for strcmp ... < 0 and also for strcmp ... > 0, besides I'm checking for other conditions.
bAscending is a boolean determining how the array should be sorted, while strLineNumber[] is the array holding the string values.
while (iLineNumber < iMaxLineNumber)
{
if ((bAscending == true) &&
// lines are not empty
(strSentence[iLineNumber]!= 0) &&
(strSentence[iLineNumber + 1]!= 0) &&
// first line is smaller than the following line
(strcmp(strSentence[iLineNumber], strSentence[iLineNumber + 1]) < 0))
{swapPos(iLineNumber, iLineNumber + 1);}
else if ((bAscending != true) &&
// lines are not empty
(strSentence[iLineNumber]!= 0) &&
(strSentence[iLineNumber + 1]!= 0) &&
(strcmp(strSentence[iLineNumber], strSentence[iLineNumber + 1]) > 0))
{swapPos(iLineNumber, iLineNumber + 1); }
iLineNumber++;
}
Jon
|
|
|
|
|
jon_80 wrote: function strcmp seems to be returning zero (0)...
How are you verifying this?
"Money talks. When my money starts to talk, I get a bill to shut it up." - Frank
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|