|
what happens if you minimize you program's window ?
|
|
|
|
|
When I minimize my application, it frees some of "Mem Usage". But still it keeps used "VM Size".
Also it keeps memory consuming when I restore it or it remains minimized.
I still wait for a solution.
Thanks.
|
|
|
|
|
is the database server on your cp ? mybe the database.
and what did your programme do when the memory increased.
it's my pleasure to make friend with you.
|
|
|
|
|
I used a simple access file (.mdb) in local computer.
My application became slow after memory consumption!
|
|
|
|
|
I've used Dan Moulding's Visual Leak Detector[^] when tracking down memory leaks.
But I really recommend you to read this article[^] as chances are that you don't have a memory leak at all.
"It's supposed to be hard, otherwise anybody could do it!" - selfquote "High speed never compensates for wrong direction!" - unknown
|
|
|
|
|
I found my problem using Easy Detection of Memory Leaks[^].
BOOL CSmartToolTip::SetTipText(CWnd *pTipOwnerWnd, CString strTip )
{
TOOLINFO ti;
_CreateTipWnd();
ti.cbSize = sizeof(ti);
ti.uFlags = TTF_IDISHWND | TTF_SUBCLASS;
ti.hwnd = pTipOwnerWnd->GetParent()->GetSafeHwnd();
ti.uId = (UINT)pTipOwnerWnd->GetSafeHwnd();
ti.hinst = AfxGetResourceHandle();
ti.lpszText = (LPTSTR)((LPCTSTR)strTip);
return((BOOL)SendMessage(TTM_ADDTOOL, 0, (LPARAM)&ti));
}
void CSmartToolTip::_CreateTipWnd()
{
if( ! IsWindow(*this) )
{
this->Create( NULL );
SetTipBkColor( RGB( 255, 255, 0) );
SetTipTextColor( RGB( 0, 0, 0) );
::SendMessage( *this, TTM_SETMAXTIPWIDTH, 0,
(LPARAM)(INT) MAKELONG(400, 0));
}
}
The problem located in above code. I periodically call above function in my application.
But why leak? Can any one help me please?
|
|
|
|
|
hello everyone
i want to load a bitmap from file and insert in specific coordinate of my SDI program.
but when i write codes and run program it shows nothing.
could i have a guide to using and inserting bitmap in my SDI.
thanx
|
|
|
|
|
could you show your code?
Of one Essence is the human race
thus has Creation put the base
One Limb impacted is sufficient
For all Others to feel the Mace
(Saadi )
|
|
|
|
|
CBitmap Bitmap;
CDC dcMem;
HBITMAP hBitmap = 0;
hBitmap = (HBITMAP)LoadImage( AfxGetInstanceHandle(),
strLocationOfBitmap,
IMAGE_BITMAP,
0,
0,
LR_LOADFROMFILE | LR_DEFAULTSIZE);
dcMem.CreateCompatibleDC(pDC);
Bitmap.CreateCompatibleBitmap(pDC, 390, -230);
Bitmap.Attach( hBitmap );
dcMem.SelectObject(&Bitmap);
pDC->BitBlt(1280, -1765, 390, -230, &dcMem, 0, 0, SRCCOPY);
i used many codes delete and add some function to them.
i never used GUI in VC++.
|
|
|
|
|
And where is this code?
1/
It would make sense to only load the CBitmap once - in your constructor maybe?
2/ -1765 seems very high... Does it work with (0,0) ?
Iain.
I have now moved to Sweden for love (awwww).
If you're in Scandinavia and want an MVP on the payroll (or happy with a remote worker), or need cotract work done, give me a job! http://cv.imcsoft.co.uk/[ ^]
|
|
|
|
|
1. in a function within c..view class
2. no it doesn't work even at (0, 0)
|
|
|
|
|
Which event you use this code?
Of one Essence is the human race
thus has Creation put the base
One Limb impacted is sufficient
For all Others to feel the Mace
(Saadi )
|
|
|
|
|
Hi,
when im trying...
void function(int y,int w)
{
printf("int function");
}
void function(float y,float w)
{
printf("float function");
}
int main()
{
function(1.2,2.2);
return 0;
}
im getting error like..
error C2668: 'function' : ambiguous call to overloaded function
and when im trying to call function(1.2,2) or function(1,2.2) it is printing as "int function"
Please clarify..when the function(float y,float w) will be called...
|
|
|
|
|
kumar sanghvi wrote: void function(int y,int w)
{
printf("int function");
}
void function(float y,float w)
{
printf("float function");
}
The problem is that the compiler is not going to understand which overload of this function are you wanting to call (1.2 can be truncated to integer, therefore the confusion). You will need to be more explicit.
kumar sanghvi wrote: function(1.2,2.2);
Try function((float)1.2, float(2.2)); instead. To make things clearer:
int main()
{
float f1=1.2, f2=2.2;
int n1=22, n2=23;
function(f1, f2);
function(n1, n2);
function((int)f1, (int)f2);
function((float)n2, (float)n1);
return 0;
}
It is a crappy thing, but it's life -^ Carlo Pallini
|
|
|
|
|
Look at the error message from gcc:
a.cpp:16: error: call of overloaded ‘function(double, double)’ is ambiguous
a.cpp:3: note: candidates are: void function(int, int)
a.cpp:9: note: void function(float, float)
A call to either function would require truncation, which is why neither is preferred over the other. I suspect you really want void function(double y,double w) . Remember that in C/C++, the default floating-point type for literals and parameter passing is double, NOT float.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Hi,
if i have a code like...
int* p;
int w=10;
p=&10;
the memory allocation for both w and p will be on stack only ...?
Please correct me if im wrong as im a newbie to c++..
and please let me know when it is really useful to allocate memory dynamically using pointer than allocating on the stack..?
|
|
|
|
|
kumar sanghvi wrote:
int *p;
int w=10;
p=&w;
the memory allocation for both w and p will be on stack only ...?
Yes, in this case, the pointer is pointing to a memory location, which is on the stack.
kumar sanghvi wrote: when it is really useful to allocate memory dynamically using pointer than allocating on the stack..?
Pointers are more useful when you need to allocate memory dynamically (typically you don't know how much memory you are going to need).
It is a crappy thing, but it's life -^ Carlo Pallini
modified on Sunday, August 23, 2009 2:11 PM
|
|
|
|
|
Thanks for ur Reply..
if possible can u explain with example when the dynamic memory allocation is really useful...
|
|
|
|
|
kumar sanghvi wrote: if possible can u explain with example when the dynamic memory allocation is really useful...
Any case where you won't know (at compile time) the amount of memory that would be needed to store data is an ideal example. If you know how many bytes would be needed at compile time, you can put it on the stack. However, if this is unknown, you could use the heap to dynamically allocate memory.
An example could be data arriving on a socket. You would know that data would arrive, but you won't know the exact 'amount' (as in 'N' bytes) at compile time. So, you allocate memory at run time (using new , malloc , or a C++ class which would do the allocation for you, etc.,).
It is a crappy thing, but it's life -^ Carlo Pallini
|
|
|
|
|
|
Post fixed. Thanks, I hadn't bothered looking into each line and had assumed that the OP should have compiled. Have your points.
It is a crappy thing, but it's life -^ Carlo Pallini
|
|
|
|
|
My previous reply to you is modified, please look at it again. Also, stop "typing" code into browser and always copy and paste.
It is a crappy thing, but it's life -^ Carlo Pallini
|
|
|
|
|
kumar sanghvi wrote:
int* p;
int w=10;
p=&10;
p=&w would do, assuming p is used: give (if it didn't have one yet) w a place on the stack (previously it would probably reside in a register), and set p to that address (eg lea esi, dword ptr[esp+24] ), but if the operations on p are simple enough (for the specific implementation, not every theoretically simple enough sequence of operations) to evaluate at compile time it may be optimized to something weird and/or scary.
But it's fine to think of them as being on the stack, the compiler will guarantee that this assumption is true whenever you make it (and if you don't make it, it doesn't matter). They're definitely not on the heap, if that's what you were wondering about.
notes: many simplifications and omissions were made to avoid writing a king-sized post, if you really want to know every little detail you could ask the same question on comp.lang.c++[^], they will be happy to tell you every pedantic little detail. And I don't guarantee that anything in this post was actually true, use the information at your own risk (etc etc)
|
|
|
|
|
harold aptroot wrote: And I don't guarantee that anything in this post was actually true, use the information at your own risk
You are actually right, I had made a mistake while correcting it as well (completely stressed out?). Have another vote from me.
It is a crappy thing, but it's life -^ Carlo Pallini
|
|
|
|
|
Thanks, but hey mistakes happen to everyone (except JSOP and Chuck Norris of course)
|
|
|
|
|