|
Abhijit_Satpute wrote: With the help of Task manager.
Not a good choice. TM does not tell you how much memory your program is using, but the amount of address space that is in use, which differs from the amount of that address space your program is actually using.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Some people are making such thorough preparation for rainy days that they aren't enjoying today's sunshine." - William Feather
|
|
|
|
|
So please suggest me some good tool which can tell me exact memory used by my application.
Regards,
Abhijit
|
|
|
|
|
Abhijit_Satpute wrote: So please suggest me some good tool which can tell me exact memory used by my application.
In all sincerity, why do you think you need to know this?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Some people are making such thorough preparation for rainy days that they aren't enjoying today's sunshine." - William Feather
|
|
|
|
|
My japanese client is using Task Manager to see the memory. So i need to convince him that it is not a memory leak.
Japanese clients are very hard to convince.
Regards,
Abhijit
|
|
|
|
|
Hello,
I wanted to create an application in which I wanted to start my application at specific time, say I wanted to start my application at every 3 PM. If my computer is not on at 3 PM, I must be able to start it on later time as well.
I using VC++/MFC application.
Happy Programming.
|
|
|
|
|
It would be simpler to use the Windows Task Scheduler.
The best things in life are not things.
|
|
|
|
|
I have tried to use various examples finding Windows Scheduler with VC++. But almost every application give one or other COM exception. Can I have a link or example which shows use of windows scheduler with VC++/MFC.
Here are some links I have tried,
http://msdn.microsoft.com/en-us/library/aa381915(v=vs.85).aspx[^]
http://msdn.microsoft.com/en-us/library/aa446855(v=vs.85).aspx[^]
In second example I am getting exception in
ITask *pITask;
LPCWSTR lpcwszTaskName;
lpcwszTaskName = L"Test App";
hr = pITS->Activate(lpcwszTaskName,
IID_ITask,
(IUnknown**) &pITask);
pITS->Release();
if (FAILED(hr))
{
wprintf(L"Failed calling ITaskScheduler::Activate; error = 0x%x\n",hr);
CoUninitialize();
return 1;
}
|
|
|
|
|
I meant use Task Scheduler instead of writing a program.
The best things in life are not things.
|
|
|
|
|
I meant use Task Scheduler instead of writing a program.
That would be the best choice if I am making application for myself. I wanted to create Application.
Regards
|
|
|
|
|
Reason : Please read the first line of example.
"This example attempts to run an existing task. This example assumes that the task and the test task already exist on the local computer."
Check this
http://msdn.microsoft.com/en-us/magazine/cc163350.aspx
"Every Little Smile can touch Somebody's Heart...
May we find Hundreds of Reasons to Smile Everyday... and
May WE be the Reason for someone else to smile always!" (ICAN)
|
|
|
|
|
Hi Shilpi,
Actually I used Notepad.exe as well, but got exception. Then I tried chrome.exe, though Chrome Browser running on my system. But doesn't work.
Regards
|
|
|
|
|
Did you manually add the Scheduled task of notepad and chrome ??
Go to control panel -> Scheduled task -> Add Scheduled task and than check for this task using your code.
"Every Little Smile can touch Somebody's Heart...
May we find Hundreds of Reasons to Smile Everyday... and
May WE be the Reason for someone else to smile always!" (ICAN)
|
|
|
|
|
Great! Its working now.
Thanks and Regards
|
|
|
|
|
"Every Little Smile can touch Somebody's Heart...
May we find Hundreds of Reasons to Smile Everyday... and
May WE be the Reason for someone else to smile always!" (ICAN)
|
|
|
|
|
You've already posted this in the C# forum, please don't cross post...
|
|
|
|
|
Ok, i just cannot get it. How can i nitialize static class members? I got such situation:
class myClass
{
private:
static myClass *pThis;
public:
.................
};
Now i am trying to initialize pThis to "this" so i can use it in some static methods, like threads and so.
If i am trying to initialize it in constructor, compiler says that pThis is unresolved. Ok then, i am trying to initialize it to NULL outside a class, like this:
myClass *myClass::pThis = NULL;
Now linker says that pThis is already defined in myClass.obj. What am i doing wrong?
Thanks
011011010110000101100011011010000110100101101110
0110010101110011
|
|
|
|
|
In C# one would use a "static constructor", which runs once, when the class gets referenced for the first time. However there is no such thing in C++, the best you can do is probably what is explained here[^].
Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum
Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.
|
|
|
|
|
Yeah, that issue appeared because i have this initializer in .h file, not in .cpp
011011010110000101100011011010000110100101101110
0110010101110011
|
|
|
|
|
My previous message was incorrect; this works:
In your header file you have the class definition so:
class myClass
{
private:
static myClass* pThis;
public:
myClass();
};
in your implementation (.cpp) file you have:
myClass* myClass::pThis;
myClass::myClass()
{
pThis = this;
}
The best things in life are not things.
|
|
|
|
|
Yep, that is what i needed
011011010110000101100011011010000110100101101110
0110010101110011
|
|
|
|
|
..on the other hand, if you want to use it in thread functions it would be better to send it as a parameter to the thread function.
|
|
|
|
|
That is correct. Just wanted to avoid a lot of params and have one static instance for use everywhere
011011010110000101100011011010000110100101101110
0110010101110011
|
|
|
|
|
Then my guess was right, your construct is indeed meant as a way to implement a singleton.
This is wrong on so many accounts:
1. If you deal with multiple threads, this won't be thread safe
2. By making all your functions static, you give the false impression that these functions will not modify the internal state of your program, while in truth several effectively global parameters are being modified. Anyone else seeing and trying to use these functions may quite easily introduce fatal errors into the system.
3. Since your constructor creates the instance that you need, if that constructor is being called multiple times, your pointer will be overwritten, and you lose the current state of your application irrevokably.
4. Replacing function parameters with global variables is bad design. It will lead to functions producing different results with same parameters, making them effectively untestable.
|
|
|
|
|
Stefan63, that is just wrong. Trust me i know what i am doing. One question: how would you implement custom control class by making it singleton while you need , lets say 10 instances of that class? you got 10 buttons on your dialog - now make this singleton. Second, have you ever heard of "static trampoline" ? Try this: encapsulate WndProc, CreateThread and SetWindowHookEx in a class - you will get idea. In case of mfc, encapsulating wndproc is actually out of the question, but that is not the point. Cheers
011011010110000101100011011010000110100101101110
0110010101110011
|
|
|
|
|
Now what is it - in your previous post you stated you want one static instance, now you talk of multiple instances.
You further stated that it's purpose is to save you the need to pass more parameters. And that I consider bad design. Therefore I'd not use a singleton to start with.
Of course, if these premises are wrong, then this may invalidate my arguments. But if the solution provided above works for you, and you don't think my advice was helpful, then there's no point to continue the discussion.
|
|
|
|