|
You want to use of CTreeCtrl,and if you search on the codeproject you can find customize treectrl.
|
|
|
|
|
Hi all,
In Visual Studio 2005, from one method in dll, I'd like to search the way how to find out the name of dll where this method is.
e.g.
TEST.dll
In TEST.dll, I've some methods like method1
and from method1, how can I find out the name "TEST.dll"
Many thanks in advance
Hope to hear the help soon.
|
|
|
|
|
|
Hello everyone,
Reading from book Windows Internals, we should use private bytes to monitor memory leak.
1. I think the reason why not using virtual bytes, is because there may be some shared materials counted as a part of virtual bytes -- like shared library and file map;
2. I think the reason why not using working set, is because sometimes working set is trimmed and sometimes not all committed virtual bytes are in working set -- like demand for zero scenario.
Are my understanding for (1) and (2) correct?
thanks in advance,
George
|
|
|
|
|
George_George wrote: Are my understanding for (1) and (2) correct?
By chance have you asked either Dr. Russinovich or Mr. Solomon if your understanding of their book is correct?
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Thanks DavidCrow,
I have read the section of memory management, and it is only mentioned using private byte to monitor memory leak is correct. I want to do further analysis why using other parameters, like virtual bytes and working set to monitor memory leak is not correct to verify we truly understand the points of memory management.
It is appreciated if you could share your points.
have a good weekend,
George
|
|
|
|
|
Now do you check private bytes for monitor emmory leak what was result?
|
|
|
|
|
Thanks Hamid,
In my limited testing, private bytes keep increasing if there is memory leak, but I am not sure whether the general rule applies for all scenarios. It is appreciated if you could share some of your points.
regards,
George
|
|
|
|
|
Do you want to find memory leak of your program or all programs?
|
|
|
|
|
Only my program is ok, Hamid!
Any ideas?
regards,
George
|
|
|
|
|
About?
|
|
|
|
|
About how to detect memory leak?
regards,
George
|
|
|
|
|
|
Thanks Hamid,
This link only describes how to use general process to detect and fix memory leak. My question is whether it is correct to watch private bytes, working set or virtual bytes counter.
regards,
George
|
|
|
|
|
Did you use of CMemoryState for memory leak ?
|
|
|
|
|
No, Hamid. I am not using it since it is MFC stuff.
My original question is about how to use memory counter to monitor memory leak.
regards,
George
|
|
|
|
|
dear all
how to solve the following problem..thanks a lot..
for (int k = 0; k< 150; k++)
{
if (d[k] == c[k][0])
{
sum1 = c[k][0];
sum1 = sum1 + 1;
num1 = num1 + 1;
}
why sum1 can't accumulate..it always showed me 1 + the previous value...
Li Zhiyuan
5/10/2006
|
|
|
|
|
Probably (my CPMRU suggested) you want to do the following
for (int k = 0; k< 150; k++)
{
if (d[k] == c[k][0])
{
sum1 = c[k][0];
}
sum1 = sum1 + 1;
num1 = num1 + 1;
}
or something similar... Maybe posting your requirement will help.
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.
[my articles]
|
|
|
|
|
still problem.....do u have other idea? thanks
Li Zhiyuan
5/10/2006
|
|
|
|
|
But did you read my reply?
I need to know your requiremts, i.e. what should your code do?
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.
[my articles]
|
|
|
|
|
double d[150]; double c[150][3],d[150] is a minimum value of c[150][3], so i want to accumulate how many numbers in column 1,2 and 3 respectively, and sum each column value. that is all..thanks a lot.
for (int k = 0; k< 150; k++)
{
if (d[k] == c[k][0])
{
sum1 = c[k][0];
sum1 = sum1 + 1;
num1 = num1 + 1;
}
if (d[k] == c[k][1])
{
sum2 = c[k][1];
sum2 = sum2 + 1;
num2 = num2 + 1;
}
if (d[k] == c[k][2])
{
sum3 = c[k][2];
sum3 = sum3 + 1;
num3 = num3 + 1;
}
Li Zhiyuan
5/10/2006
|
|
|
|
|
something like the following?
int n;
int sum[3];
int num[3];
for (n=0; n<3; n++)
{
sum[n]=0;
num[n]=0;
}
for (int k = 0; k< 150; k++)
{
for (n=0; n<3; n++)
{
if (d[k] == c[k][n])
{
sum[n] = sum[n] + d[k];
num[n] = num[n] + 1;
}
}
}
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.
[my articles]
|
|
|
|
|
thanks, i tried your suggestion already, but still problem...num[n] is no problem, sum[n] still has problem, when i used sum[n] += d[k], the result is sum[0] = sum[1] = sum[2] = 0; if i used sum[n] = sum[n] + 1; the result is same with num[n], what happened? thanks
Li Zhiyuan
5/10/2006
|
|
|
|
|
i already solved this problem, finally i found, i need to change array type from int to double, because array d is double..firstly, i misinitialed int...thanks
Li Zhiyuan
5/10/2006
|
|
|
|
|
sum1 doesn't accumulate as you are assigning a fresh value to it:
li zhiyuan wrote: sum1 = c[k][0];
before you accumulate
li zhiyuan wrote: sum1 = sum1 + 1;
Peter
"Until the invention of the computer, the machine gun was the device that enabled humans to make the most mistakes in the smallest amount of time."
|
|
|
|