Solved

console

Posted on 2003-11-26
2
475 Views
Last Modified: 2012-05-07
Help me outttt



I'm gettin this error message when i tried to run my program :


Unhandled Exception: System.NullReferenceException: Object reference not set to
an instance of an object.
   at ConLib.SetBackgroundColor(ConLib* , UInt16 Color) in d:\documents and sett
ings\tejo\desktop\codes\test conlib\onlib.cpp:line 22
   at main() in d:\documents and settings\tejo\desktop\codes\test conlib\main.cp
p:line 12
Press any key to continue


what is this error telling me?





here is my code from main.cpp:


      ConLib* test;
      test->SetBackgroundColor(0);

and here is my code in my function SetBackGroundColor(WORD Color)

void ConLib::SetBackgroundColor(WORD Color)
{
      m_BackgroundColor = 0 ;

      //combining the colors;
      if(Color & ConRed)
      {
            m_BackgroundColor |= BACKGROUND_RED;
      }

      if(Color & ConGreen)
      {
            m_BackgroundColor |= BACKGROUND_GREEN;
      }

      if(Color & ConBlue)
      {
            m_BackgroundColor |= BACKGROUND_BLUE;
      }

      SetConsoleTextAttribute (m_Screen, m_TextColor | m_BackgroundColor);

}


pls help me out. i'm a begginner in using this console thing.
My platform is windows and i'm using Visual C++ .NET

Thank you.
0
Comment
Question by:wilslm
2 Comments
 
LVL 6

Accepted Solution

by:
PlanetCpp earned 500 total points
ID: 9829690
it means you tried to access an object from a pointer that wasnt pointing to anything.
you need to use
ConLib *test = new ConLib;
or
ConLib *test;
then before you use it
test = new ConLib;
if there are paramters for the constructor just add them at the end
= new ConLib(param1,param2,etc);
then you can access it using -> or (*test).memberhere
when youre done using it you need to use
delete test;
then to be safe you should use test = NULL;
this way you can test if its there if needed later
0
 
LVL 24

Expert Comment

by:shivsa
ID: 9829691
if an object isn't initialized it will give that sort of error. eg:
if you declare a Form like this....

code:
--------------------------------------------------------------------------------
Dim frm As Form1
frm.Show()
'/// this will erro
r--------------------------------------------------------------------------------

you would get that error because you didnt declare it as a NEW form , or as a CAST of a Form.
the correct ways , depending on what you are doing would be like these...

code:--------------------------------------------------------------------------------
Dim frm As New Form1()
frm.Show()
'///OR
Dim frm As Form1 = DirectCast(Me.Owner , Form1 ) '/// if form1 was the owner of the Form you call from.
frm.Show()
--------------------------------------------------------------------------------

the same applies to all stuff, like Objects etc... , you must initialize them
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Errors will happen. It is a fact of life for the programmer. How and when errors are detected have a great impact on quality and cost of a product. It is better to detect errors at compile time, when possible and practical. Errors that make their wa…
Introduction This article is a continuation of the C/C++ Visual Studio Express debugger series. Part 1 provided a quick start guide in using the debugger. Part 2 focused on additional topics in breakpoints. As your assignments become a little more …
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.
The viewer will be introduced to the member functions push_back and pop_back of the vector class. The video will teach the difference between the two as well as how to use each one along with its functionality.

820 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question