|
Yes,
Standard Debugging Methods:-
Depending on whether you are a beginner or advanced user, the answer to your question is either simple or complicated. I asume for now that you are a beginner! Because your question touches on many issues beginners face, I will try and formulate an answer,.-
The question is: How do I monitor what's happening. The old adage used to be: "When in doubt, print more out". The general idea is, write a few macro's which at time of debug dump variables and line numbers etc to a file, and make sure that the self same macro's resolve to ((void)0) at release.
-Write code that dumps variable valies to a file
-use Conditional code to call int3's (User Breakpoints)
-set conditional breakpoints in your file(s)
LateNightsInNewry
|
|
|
|
|
i use vs.net2003.as soon as i start debug,the usage of cpu is up to 100%.especially the thread devenv.exe take a lots, about more than 90%.
give me a help!
thanks a lot!
fresh man
|
|
|
|
|
Ahh >_< lack of space. Anyways, not having VS .NET 2003 i don't know, but im assuming that devenv.exe is part of it?
Anyway, since this happened, have you tried restarting your computer? It could just be some wierd problem. Also try debuging a different app that you have available to see if it still steals all your CPU, it may be something to do with your application.
Or it could be Some kinda spywary virusy type thing.
I have stop sign, and at one point one of the 32KB exe's was taking up 190MB of RAM, whats up with that? In the end i had to re-install.
|
|
|
|
|
i'm sorry
i cannot help you
who know
can tell you ?
i also want to know?
h-ker@163.com
|
|
|
|
|
Wow - that's helpful.
Christian Graus - C++ MVP
|
|
|
|
|
|
Your sig doesn't show up right to me (i think).. i am using firefox, all i see if a big blue rectangle and a few lines.
I don't believe in failure. It is not failure if you enjoyed the process.
|
|
|
|
|
I think these styles are limited to IE because on Opera and (Firefox) I cant see any thing maybe I must modify my sig
|
|
|
|
|
What happens if you just run your app ? Could your app be maxing out the CPU ?
devenv.exe is the IDE. It could even still be compiling, and you're jsut freaking out. What happens if you let it do it's thing for a while ?
Christian Graus - C++ MVP
|
|
|
|
|
i have restarted computer,but it still is.
what's more ,i also build a new project,the cpu's usage is the same!
fresh man
|
|
|
|
|
Perhaps if you took the time to answer the questions people have put to you, we could help more.
Christian Graus - C++ MVP
|
|
|
|
|
Maybe you are in the wrong forum, but you posed it to a VCPP, MFC forum anyways, so here she goes. The basics of this are ASM Debugging Techniques:-
Sometimes things like that happen when writing MFC Code. It nearly always means that I landed in an infinitely recursing set of functions.
To unravell this, Start with writing a macro that documents and dumps ESP to a text File.
Then, prepare to spend a few days at it, setting breakpoints, and tracing manually to the problem. Keep a sheet of paper beside you to write down calling addresses, and, depending on the complexity of your code, the repeating feature of calling points will soon give you an idea where the problem is.
LateNightsInNewry
|
|
|
|
|
Its first time you have this problem or no?
|
|
|
|
|
Ok!
thanks all of you! especially MVP~
when i add "/devenv/skippkgs" to the compiler;
then the computer runs as normal.
i don't know why!
nice
|
|
|
|
|
If you do not now spend some time to find out the 'why' you have bot learned anything. Please let us know.
LateNightsInNewry
|
|
|
|
|
how do i tell if my mouse is over a button?
what api do i use or what event is triggered?
|
|
|
|
|
You'll get a WM_MOUSEMOVE anytime the mouse is over the client area of your button, but I suspect you want to know when the mouse has left your button, in which case you'll need the TrackMouseEvent api.
This article might be useful:
http://www.codeproject.com/gdi/mousecapture.asp[^]
- S
50 cups of coffee and you know it's on!
|
|
|
|
|
ok what i am doing is i have 4 buttons and a static text on my main dialog and when the mouse is over the buttons i want it to display text for what the button does and show it on the static text window.
|
|
|
|
|
Can't think of a nice way to do this. How about tooltips instead?
What framework are you working in, pure Win32 API or MFC?
- S
50 cups of coffee and you know it's on!
|
|
|
|
|
mfc but i dont want the tooltips i want to use a window i subclassed my buttons i have it telling me what button im over i just dont know how to set the window text from the subclassed class to the main dialog class
|
|
|
|
|
My MFC is a little rusty, but what I did was derive a new class from CButton, CMyButton which handles the WM_MOUSEMOVE event. OnMouseMove sends a custom message to it's parent, telling it that it's over the button. The parent (your dialog in this case), handles the custom message and set's the text of the static control appropriately.
A very crude example:
#define MYBTN_BUTTONHOVER WM_USER + 1000<br />
<br />
void CMyButton::OnMouseMove(UINT nFlags, CPoint point) <br />
{<br />
CButton::OnMouseMove(nFlags, point);<br />
<br />
GetParent()->SendMessage( MYBTN_BUTTONHOVER, (WPARAM) this->GetDlgCtrlID(), 0 );<br />
}<br />
And in your dialog class you'd have:
CStatic m_lblInfo;<br />
CMyButton m_btn2;<br />
CMyButton m_btn1;<br />
<br />
BEGIN_MESSAGE_MAP(CMyDialog, CDialog)<br />
ON_MESSAGE( MYBTN_BUTTONHOVER, OnButtonHover )<br />
END_MESSAGE_MAP()<br />
<br />
void CMyDialog::OnButtonHover( WPARAM wParam, LPARAM lParam)<br />
{<br />
switch ( wParam )<br />
{<br />
case IDC_BUTTON1:<br />
m_lblInfo.SetWindowText( "This is button 1" );<br />
break;<br />
case IDC_BUTTON2:<br />
m_lblInfo.SetWindowText( "This is button 2" ); <br />
break;<br />
}<br />
}<br />
In CMyButton you could do all sorts of things to fire the buttonhover event, such as if the button gets the focus, etc..
Again, a very crude example, there might be an easier way....
I can send you the test app if you need the full source.
- S
50 cups of coffee and you know it's on!
|
|
|
|
|
i had the CButton subclassed already
GetParent()-> <------- THAT MADE MY CODE WORK
GetParent()->GetDlgItem(IDC_DISPLAY_TEXT)->SetWindowText("MY TEXT");
its the little things that get you when you dont know what you are doing...
thanks steve.
|
|
|
|
|
Im not sure its true or no in first your question you need to WM_MOUSEMOVE but in your reply I think you want to use Tooltip,right?
|
|
|
|
|
When you get a WM_MOUSEMOVE message, use the TrackMouseEvent() function, which will enable you to recieve a WM_MOUSEHOVER message. You can then update your static control with a simple WM_SETTEXT.
|
|
|
|
|
I Do think you want ToolTips. Try it, Read it, No gain without Pain
LateNightsInNewry
|
|
|
|