|
I have solved my original problem. I will post a solution as a new thread because it has some very interesting implications for direct access to devices. As I suspected, the solution is grotesque but works very well.
|
|
|
|
|
Data persistence using the serialization mechanism provided by MFC is a very simple way of storing the data of a program. However, what happens if we don't want to use MFC!?? Does another mechanism exist that is just as easy to use?
My problem is that I am writing a program that will need to be used cross-platform and -OS, and so I am trying to get away from being too reliant on MFC (no matter how hard that may be making my life! )
I suppose what I am asking is either this:
1) Has anyone else came up with an easy way to do this? Or (a more likely scenario...)
2) Has anyone got any information on how MFC actually serializes the data streams to file? What steps does it take to achieve this? And similarly, when reading the data back in.
Any help would be greatly appreciated!
Cheers!
Baz
Baz
|
|
|
|
|
You need IOStreams. They work pretty much the same way, you can write IOStream handlers for any type and the whole thing is cross platform.
Christian
I have come to clean zee pooollll. - Michael Martin Dec 30, 2001
Picture the daffodil. And while you do that, I'll be over here going through your stuff.
|
|
|
|
|
Hi,
I'm trying to dynamically add/remove buttons in a toolbar, and have used the AddButtons(...) function to do so. I need to process the toolbar messages by value (ie, call another function based on the value of the toolbar button) so I have overridden the OnCommand(...) function in the MainFrame. If I do it this way instead of adding a command handler for the message, I can never un-gray the toolbar button. I'm obviously overlooking something here... can someone help me out? Its very urgent!
Thanks a lot.
Jojo!
|
|
|
|
|
If your SDI program has not command message handler for menu/toolbar item, it remains disabled (Microsoft beleives this is better for us). To enable item you need to write it's ON_COMMAND handle or enable it in ON_UPDATE_COMMAND_UI handle.
|
|
|
|
|
I think this will work:
If you add any function (like paste,undo and..) with class wizard you'll see
some codes add to your MESSAGE_MAP and header file ,you do the same for your dynamic toolbar then it'll ungray
Mazy
Don't Marry a Person You Can Live With...
Marry Someone You Can Not Live Without
|
|
|
|
|
Thanks for the replies guys. Maybe I didnt make it very clear in the original posting... but I have, say an array of max 256 buttons... and all of these are handled as such
OnCommand(...)
{
if (wParam >= ID_TOOLBAR_BTN_START && wParam <= ID_TOOLBAR_BTN_STOP)
{
DoSomething(wParam - ID_TOOLBAR_BTN_START);
}
OnCommand(...)
}
I dont think it'd be very good to add so many handlers to the window. My question is, is there any way to disable MFC's default behavior of disabling buttons if there is no handler. If someone could help me out, i'd be very very grateful.
thanks,
Jojo!
|
|
|
|
|
MFC Hell;)
Mazy
Don't Marry a Person You Can Live With...
Marry Someone You Can Not Live Without
|
|
|
|
|
Are you maybe looking for ON_COMMAND_RANGE ?
Cheers,
/Fredrik
Sonork ID: 100.11430:PhatBoy
|
|
|
|
|
Thank you very much Fredrik. That was EXACTLY what I was looking for.
Cheers,
Jojo!
|
|
|
|
|
Hi there
I had my Application running in system tray .
to Activate the Aplication i have to double Click on it .
can any body tell me , How can i Assign a hotkey , such that Just Pressing that Key , my application should get Acivated .
If any code is avalable ,please let me know .
Please let me know
My email is kanojia@infinit-esolutions.com
|
|
|
|
|
I think it sounds like keyboard hooks.
Look in the DLL section here on CP how doing that.
Because, you want your program to be shown/activated when pressing F9 or 'H' or just something...
------------------------------------
Rickard Andersson, Suza Computing
ICQ#: 50302279
I'm from the winter country SWEDEN!
------------------------------------
|
|
|
|
|
But consider carefully before using a hook to do this. A hook would mean that every keyboard message would be screened by your function. This would be pretty slow, for not much gain.
Personally I wouldn't do this... Perhaps there is another way to implement what you need?
Sorry to dissapoint you all with my lack of a witty or poignant signature.
|
|
|
|
|
I'm doint an app that uses my e-mail passwords and login. I want to save these data into the registry but how to make the string that contains the password to be unvisible.
I don't want to write the password directly to the registry, pretty unsafely!
------------------------------------
Rickard Andersson, Suza Computing
ICQ#: 50302279
I'm from the winter country SWEDEN!
------------------------------------
|
|
|
|
|
If you want to be on the safe side, use wellknown cryptography (CryptoAPI or any available Crypto Library). See MSDN for samples.
But for your stated purpose, I suppose something simple would do it too.
I will post the next days a string class for simple and fast "crypt" which would fit this purpose well.
cheers
Andreas
PS: I see that you changed your signature style again. Did CG not approve the design?
|
|
|
|
|
DAMN thank you!
------------------------------------
Rickard Andersson, Suza Computing
ICQ#: 50302279
I'm from the winter country SWEDEN!
------------------------------------
|
|
|
|
|
One old way:
You can decode to binary with a string key.To tell the truth I don't know the name of function that do this,but there are some article in CP abuot that in "Programming Tips" part
Mazy
Don't Marry a Person You Can Live With...
Marry Someone You Can Not Live Without
|
|
|
|
|
GREETINGS
Please, could you help me with the network and CryptoAPI?
I neet to make a program that scans all hard drives in the local network. How to access the drives int the net? And how to find other comps?
And about CryptoApi. If you have any sources of encrypting/decrypting, please could you send it to me? SAV@Altavista.com
Many thanks!
May the LOVE enter your heart and the PEACE enter your soul.
LOVE & PEACE to everyone
|
|
|
|
|
SAV wrote:
I neet to make a program that scans all hard drives in the local network. How to access the drives int the net? And how to find other comps?
To find other computers take a look at the WNetEnumResource() function, it includes a starting sample. Or you might consider using ADSI (Active Directory Service Interfaces) ?
And as for accessing drives on the net - this is a tough issue. There are many problems involved. But basically you can access any drive on any machine by using UNC paths \\machinename\drivespec. Although in 90% of all cases in proper configured networks this wont suffice.
SAV wrote:
And about CryptoApi. If you have any sources of encrypting/decrypting, please could you send it to me?
Again, the MSDN contains some working samples for this too.
cheers
Andreas
|
|
|
|
|
Hi,
4 DLL's of a large project I'm on have a 8MB+ .bss section, and I'm lost at tracking it back to the cause. Other similar DLL's don't have this, but the affected DLL's make heavy use of some templated library.
excerpt from MAP file:
0003:000001c0 00003560H .data DATA
0003:00003720 008006a4H .bss DATA
0004:00000000 00000cc4H .rsrc$01 DATA
...
0003:00003bf4 ?secAttrDefault@CCRegKey@@2PAU_SECURITY_ATTRIBUTES@@A 004adbf4 cxlibatl:cxRegKey.obj
0003:00803d08 ?_Nilrefs@?$_Tree@VCString@@U?$pair@$$CBVCString@@M@std@@U_Kfn@?$map@VCString@@MU?$less@VCString@@@std@@V?$allocator@M@3@@3@U?$less@VCString@@@3@V?$allocator@M@3@@std@@1IA
00cadd08 FWorkLib:DlgConflict.obj
the secAttrDefault is declared:
class CCRegKey
{
static LPSECURITYATTRIBUTES secAttrDefault;
};
LPSECURITYATTRIBUTES CCRegKey::secAttrDefault;
(and it's unlikely that this is the cause as is, since the class is used in other dll's as well....)
the _NilRefs thing seems to be a map<cstring,???>::allocator member; where CString is a MFC ripoff for use with ATL...
Any ideas where this can come from?
--------------------
don't be surprised if you see this Q in other places as well, yes, it's me...
|
|
|
|
|
Hi everyone. I have a webbrowser2 control on a dialog, with which I am using it to show an html document (a report) my program creates.
I want to stop the control from displaying the properties menu when the user right clicks on it. I found a question someone asked previously about doing this, but I am still not quite sure how to do this. What should I override to do this, and how?
Also, I am using a control bar toolbar of my own on the dialog, and I want to activate the button when the user highlights text, and deactive the button when there is no highlighted text (so the user can copy the text to the clipboard, of course they could hit ctrl-c to copy, but I want to give the user a queue that they can copy off the report to the clipboard). Is there an OnHighlightText type message that does not appear in ClassWizard?
Thanks in advance for any help!
|
|
|
|
|
John Clump wrote:
I want to stop the control from displaying the properties menu when the user right clicks on it. I found a question someone asked previously about doing this, but I am still not quite sure how to do this. What should I override to do this, and how?
If all you want to do is disable the menu and not change it thats easy
IDocHostUIHandler::ShowContextMenu and return S_OK
HTH
Laterz!!!;P
"An expert is someone who has made all the mistakes in his or her field" - Niels Bohr
|
|
|
|
|
why we rarely can find using exception in VC++?
why we rarely can find the "try{ throw }catch()" sentence in VC++
|
|
|
|
|
Because people do not use it ? I only use it if I am doing something where I cannot vouch for my codes ability to run properly, for example, if I am about to try and read a file off the hard drive ( the presence and/or quality of the file are outside my control ).
IMO, using try/catch all the time is a sign you don't think you've written the code properly, and is ugly. It also incurs a performance cost.
Christian
I have come to clean zee pooollll. - Michael Martin Dec 30, 2001
Picture the daffodil. And while you do that, I'll be over here going through your stuff.
|
|
|
|
|
IMO, using try/catch all the time is a sign you don't think you've written the code properly, and is ugly. It also incurs a performance cost.
I don't agree with you here. It may look ugly (on aestethics I won't discuss), and certainly it can incur a performance penalty, but you get the following advantages by using exceptions instead of traditional error codes à la Win32 API:- The performance penalty is usually only incurred when an exception actually is thrown (which is assumed to be rare). The overhead of having a
try/catch block is usually negligible (between 3 and less than 10 asm instructions).
- Exceptions can improve performance and code size in cases where a lot of error codes have to be checked:
if(foo1(...)!=OK){
...
}
if(foo2(...)!=OK){
...
}
...
if(foon(...)!=OK){
...
}
try{
foo1(...);
foo2(...);
...
foon(...);
}
catch(...){
...
}
- Exceptions are sometimes the only reasonable way to go (eg. when a ctor fails).
- Exceptions integrate seamlessly with the RAII (Resource Acquisition Is Initialization) idiom. They help support invariants in your classes.
- They can help you simplify the signatures of your functions: instead of
BOOL getWhatever(int &whatever); or
int getWhatever(); you can write
int getWhatever(); I think the main problem with exceptions is that they came too late to the standard, so a huge set of code is already out there that does not use them. Also, the throw specification in function declarations is basically broken due to backwards compatibility issues. In these respects, newer exception-oriented languages like Java are in a far better position.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|