|
Do your VS2005 default #include or lib paths point to network drives?
/ravi
|
|
|
|
|
No, I don't think so.
If I move the project onto a PC which is not connected to the network as is fine.
I have opted for everything on C:\.
Does that help.
|
|
|
|
|
What about a network drive in your system PATH?
|
|
|
|
|
Just did a check and NO, no ddrives other than C:
Andy.
|
|
|
|
|
I'm learning c++ and using visual studio c++ 2005 express edition. I had written a lot of program's code and try to run, and when it should be started I got an error : An unhandled exception of type 'System.NullReferenceException' occurred in System.Windows.Forms.dll Additional information: Object reference not set to an instance of an object.
What must I do, that this error disapear ???
|
|
|
|
|
You must be new if you're a stranger to the NullReferenceException!
For .NET-related question there's at least two other message boards here that will be more
helpful:
(Managed) C++/CLI[^]
.NET Framework[^]
|
|
|
|
|
I looked (Managed) C++/CLI and .NET Framework, I used search and found nothing about NullReferenceException! Do you know something about it??
|
|
|
|
|
I meant ask your question on one of those message boards - C++/CLI is probably the most
appropriate since this isn't a framework question
The NullReferenceException class' name says it all - it's the exception thrown when you try to
dereference a null reference.
NullReferenceException Class[^]
It should be clear in the debugger which line of your code is using a reference that
hasn't been initialized/allocated yet. You may have to view the call stack to find the line in
your code (when the exception occurs).
|
|
|
|
|
debugger shows, taht tihs error comes at this code :
this->b_em.pct->Load("b_em.jpg");<br />
this->b_em.pct->Location = System::Drawing::Point(13, 64);<br />
this->b_em.pct->Size = System::Drawing::Size(5, 5);<br />
this->b_em.pct->TabIndex = 3;<br />
this->b_em.pct->TabStop = false;<br />
this->b_em.pct->Visible = false;
so where is probelm ?
|
|
|
|
|
Unfortunately I have never used forms with .NET. There's many helpful people on the .NET boards
that have though
I have no idea what class your "this->b_em.pct" object is so, based on what I see, the only
guess I can make is the Load() method call is failing - is the b_em.jpg file in the app exe folder
or in the system path?
Mark
|
|
|
|
|
b_em is from structure
ref struct tank {<br />
int step_x, step_y; <br />
System::Windows::Forms::PictureBox^ pct;<br />
};
b_em.jpg is at app exe folder
that code is at void InitializeComponent(void) function
|
|
|
|
|
Dear thesad
if you ask on the correct forum(Managed C++/CLI) you can find your answer early
|
|
|
|
|
Ok. I'll take another wild guess - pct is NULL.
Maybe try
//System::Windows::Forms::PictureBox^ pct = gcnew System::Windows::Forms::PictureBox();
b_em.pct = gcnew System::Windows::Forms::PictureBox();
b_em.pct->Load(...
You can save yourself lots of typing by omitting the implied "this->"
|
|
|
|
|
many thanks Mark, it really help
|
|
|
|
|
You are welcome
Really, consider the C++/CLI board for future CLI-related questions. I get so confused trying to
think in .NET when I'm on the C++ board.
Cheers!
Mark "flailing in the dark" Salsbery
|
|
|
|
|
Your first step should be to set a breakpoint with the debugger ( F9 ) and examine your code to see which line blows up, then check to see what variable is null, causing the error. Everything else, is flailing in the dark.
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
|
|
|
|
|
Hy, since most of you have probably been programming in MFC for a very long time, I was wondering if you could give me some tips on how to improve my programming skills in C++. Thanks
Alessandra
|
|
|
|
|
first tip :
MFC != C++
second tip :
initialize all variables.
third tip :
check that all pointers are valid before using them.
...
|
|
|
|
|
Maximilien wrote: check that all pointers are valid before using them.
I'm of the opinion that that is a bad idea. For example, consider code that follows the following pattern throughout:
if (p)
{
p->SomeFunction();
}
Many people (most people, in fact) get into the habit of doing this even when it is a bug for p to be NULL. Assuming p should never be NULL the extra check turns a crash at the point of the problem into some obscure problem later down the track as the function SomeFunction was never called. I’ve seen this many, many times. A better approach is as follows:
assert(p);
p->SomeFunction();
In a debug build we assert and in a release build you get a crash dump (because naturally everyone collects crash dumps from MS…) which points you at the problem.
As for IsBadReadPointer and friends, see here[^].
Steve
|
|
|
|
|
I did not offer anything else than "check the pointers" either you use asserts, if or some exceptions, you need to do it anyway.
Stephen Hewitt wrote: As for IsBadReadPointer and friends, see here[^].
I never use or used those functions.
|
|
|
|
|
Alessandra77 wrote: ...tips on how to improve my programming skills in C++
Fourth tip:
live it, breathe it, love it.
|
|
|
|
|
fifth tip:
go get a break (and use that time to buy a book)
|
|
|
|
|
Maybe you think its not necessary but always provide comments for your code ,use of become names for variables,your program must check exception
|
|
|
|
|
Thanks to you all!
Alessandra
|
|
|
|
|
You're welcome
|
|
|
|