|
This method of checking leaks is flawed. Memory is allocated in blocks of 4 or 8K. You may have allocated memory that is small enough that an entire new block was not required so you would see no apparent difference in the process' memory usage.
|
|
|
|
|
This makes sense, a CStringArray and CArray are passed in by reference and filled in fxA(). This means fxA() uses memory and doesn't release it upon exit.
That doesn't make this function leak memory though, because it's the calling function's responsibility to release the memory of the CStringArray and CArray when those objects are out of scope.
<signature>
It's good to live,
Josef Wainz
Software Developer
|
|
|
|
|
how was fxA() suggested that it leaked ?
does fxA() allocate memory ( with new or malloc ) ?
is it the task of fxA() to also free that allocated memory ? or is it passed on to the caller or somebody else ?
if you use things like _malloc_dbg or DEBUG_NEW in visual studio, you will be able to really see where the leaked memory is really allocated.
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
Hi, sorry if this is a really dump question...
How do i check what version the compiler is?
I want to destinguish between Visual Studio .net 2002 and Visual Studio .net 2003 at compile time...
e.g.
<br />
#ifdef VS_NET_2002<br />
do this<br />
#elif VS_NET_2003<br />
do something slightly different<br />
#else<br />
#error compiler not supported<br />
#endif <br />
Thanks for any help!
Andy
|
|
|
|
|
|
fantastic! thanks very much... do you know where there is a list of the different values for vc?
thanks again & merry xmas
Andy
|
|
|
|
|
|
I have just interfaced with my first Corba Server, but the only way I can run my client application is via a batch file as lots of Environment variables need to be set up and they are setup via a batch file whitch then run my program.
So for debugging you lose the Visual Studio IDE.
Are they any way that my program can call this batch file or implement what the batch file does (adds a path to the path variable path and defines these environment variables)
I know I could define all these variable into the system (via My Computer, but they are about 50)
ANy comments please,
Merry Christas,
|
|
|
|
|
Can you not "attach to the process" and debug that way?
In .net 2003 -- go to the debug menu, select "Processes..." and hit the "Attach..." button.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
Peter Weyzen<br />
Staff Engineer<br />
<A HREF="http://www.santacruznetworks.com">Santa Cruz Networks</A>
|
|
|
|
|
Hi Gurus,
My CListView-based control doesn't display items more than 200. Why? I've got no error while calling CListCtrl::InsertItem().
Moreover, CListCtrl-based control in the same application but on different dialog box works without above problem.
I can't realize why. Please, help.
Sincerely Yours,
RadioShark
|
|
|
|
|
What does InsertItem() return when inserting the 201st item?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Hi All,
I am using .Net 2002 environment in windows 2000 OS. I am try to convert unicode(Japanese) string to CString. I can convert the unicode string to ansi string(CString) when i set the locale(japanese) in regional options. That was showed like come ascii chars(,"êÜ). If i set the locale to english, then the ascii chars showed as ??? marks. But the need is the unicode convert into some ascii chars like from japanse locale. I tried to set the locale using setlocale() method. But there is no effect. I wrote the code is
setlocale(0,"Japanese");
The default locale is not set. I want to set the default locale dynamically. If anyone have the solution about this problem, please let me know.
Maharaj.M
|
|
|
|
|
In this case, what does setlocale() return?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Hi DavidCrow,
The setlocale returns Japanese_Japan.932, that means its taken Japanese locale. I want to remind you that if set the default locale then its working fine(Japanese locale set).
Thanks and Regards,
Maharaj.M
|
|
|
|
|
Hi DavidCrow,
The setlocale returns Japanese_Japan.932, that means its taken Japanese locale. I want to remind you that if set the default locale then its working fine(Japanese locale set).
Thanks and Regards,
Maharaj.M
|
|
|
|
|
I am using code given in Code Project "Skining Slider control by Ashok Jaiswal"
But it shows skin only when i clicks on it.
please solve my problem
Learner always
|
|
|
|
|
hello,
when i started making a wrapper for clucene in MFC, i made the frontend of searching files and directory using the system namespace.
using namespace System;
using namespace System::Collections;
using namespace System::IO;
but then when passing the "path" arguments to functions defined in clucene there is a mismatch of type.path in clucene is of type char[] and the directory specified in my frontend is of type System::String * __gc.
is there nething that i am doing in a wrong manner.or is there some other way to create a wrapper for clucene in MFC.
i may be wrong in my "coding" as i have started this coding buisness very recently.please correct me.ne help will be deeply appreciated..
thanking you all...
rakesh.
|
|
|
|
|
Hi,
On my application ( eVc++ 4.0 - PocketPC2003 ) I use a Dialog that cuts the task bar and fits the screen the code to do that is:
void FitIt(HWND Form)
{
CWnd* TaskBarWnd = CWnd::FindWindow(_T("HHTaskBar"), _T(""));
if (TaskBarWnd) TaskBarWnd->ShowWindow(SW_HIDE);
SHFullScreen(Form, SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON );
#define MENU_HEIGHT 26
CRect rect;
GetWindowRect(Form,&rect);
rect.top -= MENU_HEIGHT;
MoveWindow(Form,rect.left, rect.top,rect.Width(), rect.Height(), TRUE);
}
(I call this function in the end of the OnInitDialog())
The problem is: when an extern Message appears(such as the one that advises me that I'm connecting or disconnecting to the pc) , when this Message disappears the Dialog is redrawn
"over" the other, but starting from the point under the first
taskbar, with the result that all the form seems to be moved down and I get double "mytaskbar".
I'm asking: what event exactly happens when an extern Message comes over my dialog? where can I write the code to build again my dialog when a Message appears?
|
|
|
|
|
hello, lets take the following example.
class A
{
virtual void fun(){}
};
class B: public A
{
void fun();
virtual void funB(){}
};
class C:public B
{
void fun(){}
void funB(){}
};
now if we define an object of class C, and if we debug the application using MSVC debugger, then inside the object of C, the vtable will show the pointer to only fun(). although in actual memory of the vtable the pointer to funB() will be there, it is not displayed in the debugger's vftable entry. i am curious to know why it is like this.
somenath m
|
|
|
|
|
To me is mystery why did it compiled, because in class C you try to override fun(), even though you should not be able, because it is already overriden in class B and its not virtual anymore.
I cant help you about the rest, because MSVC does not show pointers to funcs to me at all.
|
|
|
|
|
Hi Somu,
It will not give you compile error because it is virtual function mechanism(run time binding), So it will raise Linker error.
Deelip Patil
|
|
|
|
|
Hi Somu,
It will not give you compile error because it is virtual function mechanism(run time binding), So it will raise Linker error.
Deelip Patil
|
|
|
|
|
Hi Somenath,
now if we define an object of class C, and if we debug the application using MSVC debugger, then inside the object of C, the vtable will show the pointer to only fun().
=>Class C object will contain vptr pointing to virtual table for class C and as thee are 2 virtual functions and first declared function is fun(), vptr will contain address of this class C "fun()".
although in actual memory of the vtable the pointer to funB() will be there, it is not displayed in the debugger's vftable entry. i am curious to know why it is like this.
=>yes as object C will contain only one ptr.
class B: public A
{
void fun(); // modify this as void fun(){};-> add braces / def.
virtual void funB(){}
};
|
|
|
|
|
Hi Dilip, consider the problem as mentioned below.
class A
{
public:
virtual void fun(){}
};
class B: public A
{
public:
virtual void fun(){};
virtual void funB(){}
};
class C:public B
{
public:
virtual void fun(){}
virtual void funB(){cout<<"This is in class c's funB()"<
|
|
|
|
|
Hi Somenath,
now if we define an object of class C, and if we debug the application using MSVC debugger, then inside the object of C, the vtable will show the pointer to only fun().
=>Class C object will contain vptr pointing to virtual table for class C and as thee are 2 virtual functions and first declared function is fun(), vptr will contain address of this class C "fun()".
although in actual memory of the vtable the pointer to funB() will be there, it is not displayed in the debugger's vftable entry. i am curious to know why it is like this.
=>yes as object C will contain only one ptr.
class B: public A
{
void fun(); // modify this as void fun(){};-> add braces / def.
virtual void funB(){}
};
|
|
|
|