|
acerunner316 wrote: It occurs in both debug...
So what happens if you start the program using F5 (instead of Ctrl+F5)? Do you get any useful text in the debug window?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
I get this sometimes
HEAP[<my_program_name>.exe]: Invalid Address specified to RtlFreeHeap( 00390000, 0010F57C )
or sometimes i get
The program <my_program_name>.exe exited with code 0x2
I guess I should also note that I don't really know how to use the debugger. I'm a Visual C++ noob. I only use debug and release to check that my code works the same on both, and works as expected.
|
|
|
|
|
acerunner316 wrote: HEAP[.exe]: Invalid Address specified to RtlFreeHeap( 00390000, 0010F57C )
At any point in time are you changing the value of ptrArray ?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
oh i just realized, i do intend to change the value, but it doesn't. The ptr is 0 or NULL when i'm not using it, but when i do, i use the new operator. I should really be using malloc so that it returns a pointer value, instead of taking the chance of trying to allocate (new) to ptr 0. Could that be the problem? But then why would it crash only when I close.
|
|
|
|
|
acerunner316 wrote: I should really be using malloc...
No, you shouldn't be.
acerunner316 wrote: But then why would it crash only when I close.
Check the value of the pointer variable after new is called and before delete is called.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
How you have allocated memory for ptrArray .
Can your show.
One possible cause I see is deleting this memory twice(unintentionally may be).
|
|
|
|
|
Just to determin whether that was indeed problem, I got rid of the dynamic allocation of memory to that array. Instead, I set it to a fixed array size when its declared. But I still get that windows error message.
|
|
|
|
|
Can someone explain PostNcDestroy()? I saw it in some sample code, and I tried to look it up but couldn't quite understand the need for it.
|
|
|
|
|
I'm running a thread that constantly checks GetCurSel() to make a comparison. The problem occurs when I click the arrow on the droplist and move the mouse over selections. Before actually clicking to select something, the GetCurSel() seems to be returning the value that the mouse is highlighting. Is that correct? Shouldn't GetCurSel() return the actual value selected? How can I solve this?
|
|
|
|
|
acerunner316 wrote: I'm running a thread that constantly checks GetCurSel() to make a comparison. The problem occurs when I click the arrow on the droplist and move the mouse over selections. Before actually clicking to select something, the GetCurSel() seems to be returning the value that the mouse is highlighting. Is that correct? Shouldn't GetCurSel() return the actual value selected? How can I solve this?
Polling the GUI constantly is probably not what you want to do. Instead, try caching the value you need to compare within your thread and create an even for it to check on each interval to see if he needs to update its value. When you change the selection in the ComboBox, trigger the event.
Alternatively, you could also create a variable that is shared between the GUI thread and the other thread and set its value when there is a new selecting in the combo box. You will need to use Critical Sections for either of these solutions, though.
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
|
|
|
|
|
If you just need to know when the selection changes, you should handle CBN_SELCHANGE - no need to do something as complex as a polling thread.
|
|
|
|
|
acerunner316 wrote: I'm running a thread that constantly checks GetCurSel()...
Does this thread own the UI control? Only the owning thread, which is usually the primary thread, should be interacting with the UI controls.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
what do you mean "own the UI control"? The thread begins on initialization of the window. And runs continuously with a sleep(10).
Anyways, I've already tooks Zac's advice and stored a variable. That's what I was going to do, but that involved changing a lot of code, so i was hoping there was another way to do it. It's probably the best way though.
|
|
|
|
|
acerunner316 wrote: what do you mean "own the UI control"?
UI controls (e.g., buttons, listboxes) are owned by a thread, usually the primary thread. Folks new to multi-threaded programming often make the mistake of having secondary threads communicate directly (e.g., SendMessage() ) with those UI controls. Nasty things happen as a result.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
acerunner316 wrote: what do you mean "own the UI control"? The thread begins on initialization of the window.
When a control is created, it is created within the context of a thread (usually the main thread is the only one that deals with UI stuff -- with VERY rare exceptions).
acerunner316 wrote: And runs continuously with a sleep(10).
As a side note, anytime you are calling Sleep , you really need to take a closer look at your design. You should almost never have to call that function. See below for a better solution.
acerunner316 wrote: Anyways, I've already tooks Zac's advice and stored a variable.
Make sure you wrap any reads/writes to that variable with Critical Sections (in both the UI and worker threads). Also, to eliminate the need for the thread to be constantly running (and calling Sleep , add an event that you will signal after changing the variable in the UI thread. In the worker thread, call WaitForSingleObject on that event.
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
|
|
|
|
|
If the item's in your list are unique, you could work around this using:
CString value;<br />
m_combo.GetWindowText( value );<br />
m_combo.FindStringExact(-1, value );
Or you could cache the selected index in a member variable in your SelChange handler.
I'd probably go with option 2.
- S
50 cups of coffee and you know it's on!
|
|
|
|
|
I want to use CreateService() with SC_MANAGER_CREATE_SERVICE as last argument.
The user haven't administrative rights.(Not an admin)
Is SetNamedSecurityInfo() usefull?
If(YES)
how?
else
what's the solution?
In VC6 please
|
|
|
|
|
RomTibi wrote:
I want to use CreateService() with SC_MANAGER_CREATE_SERVICE as last argument.
The user haven't administrative rights.(Not an admin)
for installing of service, user should have admin rights or you can use LogonUserEx to logon as admin and install the service
<div class='ForumSig'>"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers, Alok Gupta VC Forum Q&A :- I/ IV Support CRY- Child Relief and you </div>
|
|
|
|
|
There are applications - like antivirus software for ex. - that can work like services. That apps. work under every account. Isn't it true? This is the kind of thing I want to do.
|
|
|
|
|
RomTibi wrote: There are applications - like antivirus software for ex. - that can work like services. That apps. work under every account. Isn't it true? This is the kind of thing I want to do.
there is quite difference in working and creation of service... services can work in any account.. even when user is no logged i.. but it could be created with admin priviledge
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief And you
|
|
|
|
|
Thanks.
I'll study VC Forum Q&A :- I/ IV
|
|
|
|
|
Hello can anyone please help me.. i want to get the Dimensioned Bitmap from CBitmap ,
like i have a .bmp (bitmap) of 400 x 300 dimensions image.
and i want to show the 20x20 area of image and then 40x30 can anyone tell me how to extract the dimensioned bitmap..
like i try SetBitmapDimensions(int dwWidth , int dwHeight ) but its does not work.. im Attaching a HBITMAP to CBitmap and then using SetBitmapDimension like this:
///////////////////////////////////////
CBitmap bBmp;
bBmp.Attach(hBmp);
bBmp.SetBitmapDimension(20 , 40);
// A Picture Static Control
m_PicCtrl.SetBitmap(bBmp);
////////////////////////////////////////
but when i run the app , its shows all image in the control. so can u plz any one help me ..???
Thank you.
|
|
|
|
|
see there [^].
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|
|
Every once in a while, when I shut our app down, one or both extension DLL's don't appear to unload. Is there a tool available that unloads errant DLLs?
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
You mean the process is still running?
led mike
|
|
|
|