Solved

console

Posted on 2003-11-26
2
470 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
Comment Utility
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
Comment Utility
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

What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

Join & Write a Comment

Written by John Humphreys C++ Threading and the POSIX Library This article will cover the basic information that you need to know in order to make use of the POSIX threading library available for C and C++ on UNIX and most Linux systems.   [s…
This article shows you how to optimize memory allocations in C++ using placement new. Applicable especially to usecases dealing with creation of large number of objects. A brief on problem: Lets take example problem for simplicity: - I have a G…
The viewer will learn additional member functions of the vector class. Specifically, the capacity and swap member functions will be introduced.
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.

744 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

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now