|
|
Hi everybody,
since a several time i have great troubles with the DebugHeap.
I put for example 2x new CStatic variables at my view,
so they are at the end of the class declaration :
class MyView
{
.......
.....
...
......
....
CStatic a;
CStatic b;
};
Each time i destoy the view he has a debug heap error. Not at the destructor from the view but at
the internal destrucor of the real Object ( CObject i think )
then, i put the two CStatic's to the place where i have already declared another CStatic's and
miracle, no errors.
I had the same heap error at different views.
Now, the same case. I open a view in a frame (a), which opens a new Frame(B) and View and minimizes his-self
So i have a frame which is in normal state and another in minimized state.
Then i close the whole application : Heap Error of a CString in a Toolbar-Object
If A has the focus and B is still opened -> Error
If B has the focus and A is still opened -> No Error
I close B and A is still open -> No Error
I close A and B is still open -> No Error
I close A and B -> No Error
The error occurs after the ExitInstance of the Main-Application-Thread.
The Heap would be modified after freed
Does anyone has an idea ?
|
|
|
|
|
If you are seeing a heap error with a CString , you need to make sure you are not using the CString incorrectly, like by passing it, or any pointers returned by it, to any functions that may write into it. Storing any pointers returned by a CString object
You could also have some memory "near" the CString memory that is being overrun/underrun and is damaging it memory. What is the exact error you are getting? Are you sure it is freed memory being used again?
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
It crashed during the destruction of a Toolbar, now i removed the Toolbar which produced this error.
And now it crashes in the same way, but much earlier, at the destruction of the frame which has the focus.
But also with the message "HEAP : Free Heap Block ... modified at .... after it was freed"
The error is produces in this stack-order :
scalar deleting destructor() -> CObject:operator delete() -> dbg_free
The destructor of the Frame is already finished ( verified with a DebugMessageString )
I have no ideas
|
|
|
|
|
Look for places where you might be storing a pointer value returned by CString objects - this is generally a good sign that you are either using a CString incorrectly, or should not be using one in the first place.
Things to look for:
(LPTSTR)(LPCTSTR)sSomeCString
sSomeCString.GetBuffer(...)
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
mmh.
At the beginning i saw that it was an error with the CString ( it happens after the CString Destruktor )
But now, with the "new" error at the CObject-Destruktor of the Frame with the focus, i don't have an error at a CString. The two only CString's are destructed correctly.
if i have a
char temp[50];
and a CString str = "lalalala";
how can i put the data of str into temp;
since now i made it via strcpy(temp,str.GetBuffer());
Apart of an overflow if temp is too small i can't see a problem in this case, or ?
Thanks
|
|
|
|
|
baerten wrote: since now i made it via strcpy(temp,str.GetBuffer());
Why you needed this ?
Doesn't CString's operator LPCTSTR suffice ?
|
|
|
|
|
i remake an existing DOS-Application into a MFC-FrontEnd.
I need to use the existing functions, which are working with char*
|
|
|
|
|
You can just do:
strcpy(temp,str); But you should really be using n-versions of the string functions to make sure you do not overrun the temp buffer.
Note that a CString can be used in place of a const char * or LPCSTR /LPCTSTR , so you generally do not need to copy its contents to a char buffer unless the string data is being used in a non-const fashion.
Carefully examine any places where you are using CString::GetBuffer(...) - it usually means that something strange is going on. If you have to use CString::GetBuffer(...) , you likely should not be using a CString in that situation (not to mention that calls to it should be wrapped in a try/catch for exception handling).
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
I found the error:
Frame A is a Search Window whoch opens the Frame B, a Detail-Window.
If i search a customer and hit enter-key the customer will be opened into a new Tab of
Frame B ( B will be created if not already exists ) and A minimizes
If i close all Tabs from B, B minimizes and A appears(restore)
So i need a pointer from A to B and B to A.
At the destructor of B i test of A is still present, if yes, his pointer to B will be NULL, because
B is beeing destroyed and A does no more have a relation to B.
The test, if A is still present, was not good enough, i called the Frame A, then his View ( which was already deleted ) and modified his pointer to B ( to NULL )
In that way i get the "modified after freed"
James R. Twine,prasad_som : Thanks nevertheless
|
|
|
|
|
Hi Everyone!
I have two problems want question everyone :
First ,I want to set a Picture(has
tail :.gif , .bmp ,...) to DeskTop .
Second ,I am programming in Win32(VC++6.0),i want to
create a popup menu in Listbox .
Please help me !
Thanks
|
|
|
|
|
For second question see WM_CONTEXTMENU and first question you need to path on the registry
|
|
|
|
|
Hi Friends,
While i was trying to install VS2005, I got so many errors. especially errors related to "cab" files.
Here i just want to share how i fixed them.
Hoping this will be helpful to the people,who come across this kind of errors.
Steps :
______
1)Remove the network cable from your machine.
2)Uninstall the "Anti-Virus" program.I don't know how it will effect the installation.
3)It is preferred to copy the CD contents to a sample folder in the C drive and then install the setup.
4)Whenever you get "cab" file corruption error.Try to copy the file to some other location and again try to replace the original file with the copied file.(though the two files are same). and then click on retry..(It worked for me.)
I am not hundred percent sure,whether all these things are going to work.But it worked for me.
Comments welcome.
Thanks.
-- modified at 9:34 Tuesday 13th March, 2007
Appu..
"My blood group is not B+.But I have it my blood"
|
|
|
|
|
Hi Everyone,
In my application I want the images like (BMP,JPEG..) to be dragged from tree control and dropped into the Listcontrol. I used the FiletreeCtrl sample for tree control could anyone of you help me how to get the images of the files to be dragged and droped into the listcontrol.
Looking forward your reply
with regards,
ganesh
|
|
|
|
|
|
Hi everybody!
I want to transfer the files saved in a particular time interval.... for that should i find the last accessed time or last modified time of the file?
Which of these has to be found if it is a folder?
Thanks!
|
|
|
|
|
Since you are looking for files that have been saved (read: written to the disk, thus modified), I would look for the last modified date/time, not the last accessed date/time.
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
Hi..
Any Suggestion?
Thanks
Sameer Thakur
|
|
|
|
|
Why you dont use of CListCtrl instead ListBox its flexible
|
|
|
|
|
BCoz I have already used List box in my application and I am displaying images and string in it ;in a single column, but now I want to display the contents in multiple columns.
Thanks
Sameer Thakur
|
|
|
|
|
I said CListCtrl not CListBox
|
|
|
|
|
Ya got it.
But What I am trying to say is....
I have already developed an application with OWNER DRAWN List Box. But the concern is the elements are displayed in a single column....one below the other.
Now the list contents are large in number, SO I want to minimize users efforts to scroll the list box by clicking on scroll arrows.
I want to load the list box contents in multiple columns so that he can see more than one contents in a single row and will not have to scroll much.
Thanks
Sameer Thakur
|
|
|
|
|
|
Is your problem solving?
|
|
|
|
|
No
Sameer Thakur
|
|
|
|