|
vijayaramaraju wrote:
Michael Abrash's Graphics Programming Black Book, Special Edition
or
Michael Abrash's Zen of Code Optimization
both truly awesome books
"... and so i said to him ... if it can't dance and you can't eat it either f**k it or throw it away" 8028finder.com
|
|
|
|
|
I am currently working on the Window Media skins for my SDI application.
Skins can be Winamp skin also. Can someone advise me of this?
|
|
|
|
|
Every time I try to create an image object with a JPEG file, i get OutOfMemory status. The documentation says that a constructor can throw this error for other reasons even though you may have plenty of free memory on your machine.
Anybody ran into this issue??
Thanks.
---
Softomatix
http://www.pardesiservices.com/Softomatix.asp
|
|
|
|
|
hello,everyone:
help me . Is there anyone can tell me how to implement "Program Rollback"?
The key question is how to save the Program state at any time ,and how to restore the program state using C or C++.
|
|
|
|
|
I think I understand what you are asking.
Program state is just a bunch of variables stored (most likely) in several places. Serialize them to a file with iostream or CArchive and then reverse the process. To some degree it depends on how exact you want the "rollback" to be. Do you want screen sizes, window positions, etc to be exactly the same? If this is the case then it will require some more work but it is basically the same process.
Typically in a MFC application you can use Document/View architecture. This can make "rollback" easy because all you have to do is serialize the data in your document class through a CArchive object (Serialize function).
In non MFC applications this can be accomplished with iostreams, standard FILE access, ado and any other way you want to accomplish it.
|
|
|
|
|
thanks!
if i want to exactly save and restore the CPU registers' content in my C or C++ program ,when some error is detected ,then rollback to the previous saved CPU' state, how to do this?
|
|
|
|
|
I am still not 100% sure what you are attempting to do, but I'll take a shot at it.
You can use inline assembler to access the register values directly. Simply put them in a memory location somewhere and put them back when you're done. I never was any good at assembler so I can't spit out any code quickly.
This probably isn't enough to restore your app to its previous state though as the other memory (not in registers) modified by the app would also need to be replaced. This includes stack and heap memory.
I don't think you can programmatically alter the stack in a safe way. You can overwrite the stack and possibly do what you want but I don't think its a good idea. The heap is a little bit easier, though. You would just need to implement your own memory allocators OR hook the windows ones. Either way, not a small task.
|
|
|
|
|
I beleive what you're looking for is setjmp() and longjmp() defined in setjmp.h. These funstions will take a snapshot of your registers, and restore them when needed. They are well documented in MSDN with given examples.
|
|
|
|
|
You must collect your Program state data and write it to a (temporary file). The name convention should allow changing (i.e. data1230-08052002.tmp") and write the name to the registry "Last state OK" key in your program section.;)
|
|
|
|
|
There are just to many ways to do it to be able to liste them all.
Instead, I'll point you to the Memento pattern (from the GoF "Design Patterns").
|
|
|
|
|
Hi,
Look at this nasty type casting. any one can help?
(AFX_PMSG)(AFX_PMSGW)(int (AFX_MSG_CALL CWnd::*)(LPCREEATESTRUCT))OnCreate
note:
typedef void (AFX_MSG_CALL CCmdTarget::*AFX_PMSG)(void);
These codes come from MessageMapping and Message Rounting.
Thank you.
Best regard.
I confess that I am a stubborn guy, but why not put things thoroughly, logically and systematically clean. One concrete prolem is worth a thousand unapplied abstractions.
|
|
|
|
|
What are you asking about?
But, in general you have to remember that the message map table just contains generic routine pointers. Thus, they have to be cast to the proper routine protocol when they are to be invoked.
Tim Smith
I know what you're thinking punk, you're thinking did he spell check this document? Well, to tell you the truth I kinda forgot myself in all this excitement. But being this here's CodeProject, the most powerful forums in the world and would blow your head clean off, you've got to ask yourself one question, Do I feel lucky? Well do ya punk?
|
|
|
|
|
Can you explain the code for me in detail? I mean word by word.
Thank you.
Best regard.
I confess that I am a stubborn guy, but why not put things thoroughly, logically and systematically clean. One concrete prolem is worth a thousand unapplied abstractions.
|
|
|
|
|
NicholasCougar wrote:
Can you explain the code for me in detail? I mean word by word.
There is no need to explain it more than to say that they cast a pointer to a member function into another type of function pointer.
But to spell it out, I think it's spelled something like:
Emm eff see sucks, partially because Microsoft lagged ~5 years behind the competing C++ implementation, and partially since the AFX (remember, it was Application Framework eXperimental - probably with emphasis on the experimental part) group wasn't too good at neither design nor C++.
Sure, using the inferior MS compiler they actually managed to make something work, sometimes... But the price we got to pay for this was un-typesafety that has wasted several hundred of thousands of developer hours around the globe to date.
|
|
|
|
|
can anybody tell me how to register a com dll with c++ code? better give me some piece of code, thanks!;P
Richy
Richy
|
|
|
|
|
You can simply call the DllRegisterServer function that is exported from the COM DLL. That is what regsvr32 does.
Build a man a fire, and he will be warm for a day Light a man on fire, and he will be warm for the rest of his life!
|
|
|
|
|
I'm trying to use a CPropertySheet as a child window to a dialog... It all works pretty ok exept for one small and extremely annoying bug:
If a child window of a CPropertyPage has the input focus when the main window loses focus (for instance if Alt+Tab is pressed or if another top-level window is activated) the application stops responding.
Has anyone experienced this problem before?
If yes do you know of a solution or workaround?
Demo project available for download here.
Cheers!
Marc
|
|
|
|
|
A curious problem indeed! The problem is, you are not telling the property sheet it is to be used as a control. You can do this by creating it with the WS_EX_CONTROLPARENT style. So this line:
m_wndSheet.Create(this,WS_VISIBLE|WS_CHILD);
Needs to be changed to:
m_wndSheet.Create(this,WS_VISIBLE|WS_CHILD,WS_EX_CONTROLPARENT);
--------
I don't think that I'm a sell-out but I do "Enjoy Coke!"... -- Bloodhound Gang, The Inevitable Return Of The Great White Dope
|
|
|
|
|
Actually, I've found that calling Create like that doesn't work with regards to the window processing keyboard input correctly. For example, copying and pasting your code resulted in the Esc key not working and Tab key not moving from the pages to the other controls on the parent dialog. Therefore, I create sheets within a dialog like this:
m_sheet.Create(this, WS_CHILD | WS_VISIBLE);
m_sheet.ModifyStyleEx (0, WS_EX_CONTROLPARENT);
Cheers,
Tom Archer
Author - Inside C#, Visual C++.NET Bible
|
|
|
|
|
Thank You! This has been bothering me for a long time, i never would have guessed simply using ModifyStyleEx() would fix it.
--------
I don't think that I'm a sell-out but I do "Enjoy Coke!"... -- Bloodhound Gang, The Inevitable Return Of The Great White Dope
|
|
|
|
|
|
Cool! Thanks a lot.. I'd probably never have figured that out myself =)
Cheers!
Marc
|
|
|
|
|
Call it serendipity. I swear I was literally doing A/R (author review) on a property pages/sheets chapter for my MFC book when I saw the question. I glanced at it and then looked at my code - no kidding, one demo is putting a prop page in a dialog! - and noticed the different technique.
I took my code out and tried the other and saw the tab and esc problem. I put mine back in and it worked. You must be living right
Cheers,
Tom Archer
Author - Inside C#, Visual C++.NET Bible
|
|
|
|
|
I have one question.Sorry, may be this could be posted multiple times.
How can i differentiate between shutdown and restart in Win32 based app.With the help of WM_QUERYENDSESSION from lparam i could differentiate between Logoff and shutdown/restart but couldnot differentiate between Shutdown and restart.Can you pls.give me your ideas.
Thanks
-surender
|
|
|
|
|
Not too long ago I came across an article on windows registry settings somewhere through google. (Sorry no link. Its been a couple (few?) weeks ago).
I remember seeing a registry setting set by windows on shutdown indicating what kind of shutdown it was performing. I may be wrong. You could use RegMon from www.sysinternals.com to watch the registry and see what this value is and then query it in your app.
Hope this helps.
|
|
|
|