|
Umm, just below this post man! i added it as a reply
|
|
|
|
|
heres another example, this one ibe just created as a normal Win32 console app, and included afx.h and atlbase.h to my stdafx.h.
Ibe just compiled & executed this, and got the same leak
// leak.cpp : Defines the entry point for the console application.
#include "stdafx.h"
class CClass
{
public:
CClass(){}
CClass(const CClass& rv) { m_member=rv.m_member;}
const CClass& operator=(const CClass& rv){m_member=rv.m_member; return *this;}
CString m_member;
};
int main(int argc, char* argv[])
{
CClass c1;
CClass c2;
c1.m_member="ABC";
c2.m_member="DEF";
CSimpleArray<CClass> arr;
arr.Add(c1);
arr.Add(c2);
arr.RemoveAt(1);
return 0;
}
the results (in debug window) after program exits are:
Detected memory leaks!
Dumping objects ->
strcore.cpp(118) : {44} normal block at 0x003E2498, 16 bytes long.
Data: < DEF > 01 00 00 00 03 00 00 00 03 00 00 00 44 45 46 00
Object dump complete.
as a side note, if you remove the item at position 0 of the array instead of 1, then tere is no leak. this IS a bug in CSimpleArray isnt it?
|
|
|
|
|
Test the Add() and RemoveAt() and make sure the all return TRUE. SDK docs indicate CAtlArray should be used instead of CSimpleArray. I'd also add a Destructor to CClass and check when it is being called as that is where the CString will be deleted.
Neville Franks, Author of ED for Windows www.getsoft.com and coming soon: Surfulater www.surfulater.com
|
|
|
|
|
Thanks, ibe found what the problem is, check out the implementation of the CSimpleArray class template included in VC6:
BOOL RemoveAt(int nIndex)
{
if(nIndex != (m_nSize - 1))
{
m_aT[nIndex].~T();
memmove((void*)&m_aT[nIndex], (void*)&m_aT[nIndex + 1], (m_nSize - (nIndex + 1)) * sizeof(T));
}
m_nSize--;
return TRUE;
}
as you can notice, if you remove the last element, the element is NOT destroyed.
ibe been told however, that this "small glitch" is fixed in .NET, i guess the rest of us "mortals" using VC6 are stuck with it.
|
|
|
|
|
Dear:
when create ISAPI filter , then add OnSendRawData notification either by the wizard or manualy , and build it then add it to IIS the filter wont load and status keep down(not loaded),,WHY?
Regards
|
|
|
|
|
Howto scroll and scaling matrix[2000][2000] with rectangles in Form View (any sample in VC6).
|
|
|
|
|
Howto scroll and scaling matrix[2000][2000] with rectangles in Form View (any sample).
|
|
|
|
|
Hi everyone,
I have a problem:
Windows allow multiple keyboard configuration language and somebody can change this with Alt+Shift (generally).
How to detect when this change happen.
Thakns in advance.
Ivan Cachicatari
www.latindevelopers.com
|
|
|
|
|
|
|
|
|
i've coded one COM class with two methods exposed. i also created 2 parameters (global ones) in the class. i am using Visual studio's ATL project. i compiled the COM class as an apartment threaded one.
i've created two instances from this class in another project, and after few tests, i got to understand that the global parameters were affected in both objects when they were changed in one of the instances.
what i need to do, is be able to create two instances in two different threads (one instance created per thread), and that global parameters will be global per instance - and not for both, so if values are changed during call to one of the instance's methods, the second one's global parameters won't be affected.
i compiled the COM class as an apartment threaded one.
Can anyone see the problem?
|
|
|
|
|
Is their a way to allow a function template to use private variables in a class. I need to have my template function modify certain private variables in a class. Can anyone point me in the right direction. I would be extremly greatful if anyone can show me or point me into the right direction.
|
|
|
|
|
maybe calling public functions in that class to modify those private atributes...
|
|
|
|
|
How can I see if there is a download in progress from my app?
If something if download from internet how can I see that and cancel the download if I want?.
I have never coded a internet app before so if someone have a code sampel or something please help me...
|
|
|
|
|
One solution is winsock. Check out MSDN.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/ntwrkprot.asp
Check out my website for software development links.
http://www.dslextreme.com/users/kuphryn/links.html
I highly recommend Network Programming for Microsoft Windows, Second Edition by Anthony Jones and Jim Ohmund.
Kuphryn
|
|
|
|
|
Well That don't help me...
I need to find some code exempel..
|
|
|
|
|
Larsson wrote:
If something if download from internet how can I see that...
See here and here.
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
I've the following situation:
MFC Dialog based Application
\_CMainDlg
\_CMainDlg
So the CMainDlg opens another dialog of the same type:
m_DoubleCalc = new CMainDlg (NULL, IDD_CALC_DIALOG_MINI);
m_DoubleCalc->Create(IDD_CALC_DIALOG_MINI, this);
The 2 Dialogs are running at the same time, the problem is that
it seems like that the previous CMainDlg eats messages from the
other CMainDlg it has created. The wired thing is some messages
seem to work while other dont.
I'am searching now for hours, but I still have no clue.
Thank you
Mario
|
|
|
|
|
Hello, i'm doing a simple ansi c console application.
i'm reading a file
Now, i have to print its characters, and if i find a non-printable character i'd like to write a . or , or whatever.
i've got this code that prints everything:
while (Cantidad>0)
{
c=getc(Arch);
if (c!=EOF)
printf("%c",c);
else
{
printf("eof.\n");
return 1;
}
Cantidad--;
}
how do i check if c is a non-printable character?
thanks!
|
|
|
|
|
|
thanks!!
that function solved it!
|
|
|
|
|
Hi, can somebody help me?
I am beginning study C++, but I confuse with multiple source and header file function call.
Example:
engine.cpp have function below
double Engine::GetWeight(){
return mWeight;
}
car.cpp have function below
void Car::UpdateWeight(){
}
The car.h file include engine.h file but they are not inheritance "is - a", how can I call engine GetWeight() function or get the engine mWeight result at car.cpp file? Many thanks.
|
|
|
|
|
As you say, there is no IS-A relationship between a car and an engine. But there's a HAS-A relationship: manely, a car has an engine (and only one, if you restrict your program to the usual cases.) HAS-A is modelled in C++ typically by member variables:
class Car
{
...
Engine engine;
}; It is up to you to decide on other details, like whether engine is to be made public or private . Now, on your Car::UpdateWeight implementation you can access the engine interface the usual way:
void Car::UpdateWeight(){
double engine_weight=engine.GetWeight();
...
} Does this clear the issue to you?
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|