|
Hello Friends
Critical Situation:
Two application are in MFC.Using Document View Architecture.
First Application saving a file using Serialize.[no idea about File Format].We dont have this application code.
Second Application is also saving a file using Serailize of same extension tht we created in first application.[ knows the format ].
Now,when i am trying to Load old Files into new Application,it crashes,As I am assuming File format is Different.Is there any way If I can Get Format of Old Files so that when i load up in new application,it doesnt crash?
Any Ideas?
Regards
Yogesh
|
|
|
|
|
You can use a HEX editor to read the file and try to figure it out, or try and find the format description by getting the source code of the application, or talking to the people who do have the source code. Either way there is no tool that I know of that can tell you the format.
Binding 100,000 items to a list box can be just silly regardless of what pattern you are following. Jeremy Likness
|
|
|
|
|
I dont have any option.And reading thru Hex file Editor and figure out is not possible.
Thanks Richard.
Regards
Yogesh
|
|
|
|
|
Why not use a different extension for your new files?
Binding 100,000 items to a list box can be just silly regardless of what pattern you are following. Jeremy Likness
|
|
|
|
|
But ,I have to load up old Files too even,thts y I want to read what wrong with new format.
|
|
|
|
|
Well I guess you made a mistake in using the same file extension for your files as one that was already in use. I think some other posters have suggested methods you can use to try and distinguish between the two.
Binding 100,000 items to a list box can be just silly regardless of what pattern you are following. Jeremy Likness
|
|
|
|
|
File extension does NOT determine file format, of course.
If, and only if, you know that 'old' and 'new' files are indeed pretty similar then you may try to use the debugger with the new application while trying to load the old file in order to guess what is going wrong.
Veni, vidi, vici.
|
|
|
|
|
I tried to load old Files in new appliction but while debugging it is showing all values that i am getting in new application is totally junk values and at one step it crashed.
Regards
Yogesh
|
|
|
|
|
Suggestion. Modify your second application so that it writes out some recognizable tag. Also have it check for that tag first, before it attempts to read the entire file. If the tag is present, then proceed to read the rest of the file. If the tag is not present, or an exception is thrown which you catch, then do not read the rest of the file.
Chris Meech
I am Canadian. [heard in a local bar]
In theory there is no difference between theory and practice. In practice there is. [Yogi Berra]
posting about Crystal Reports here is like discussing gay marriage on a catholic church’s website.[Nishant Sivakumar]
|
|
|
|
|
Chris Meech wrote: Also have it check for that tag first, before it attempts to read the entire file.
GetObjectSchema() , perhaps?
"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
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
|
|
|
|
|
That looks like a pretty good method call to me.
Chris Meech
I am Canadian. [heard in a local bar]
In theory there is no difference between theory and practice. In practice there is. [Yogi Berra]
posting about Crystal Reports here is like discussing gay marriage on a catholic church’s website.[Nishant Sivakumar]
|
|
|
|
|
why not use boost library serialization?
|
|
|
|
|
Hello Friends
Whats the Difference between
COleserverDoc::OnOpenDocument(filename)
and
CDocument::OnOpenDocument(filename)
?
Regards
Yogesh
|
|
|
|
|
yogeshs wrote: Whats the Difference between
Have you looked at the online docs? Have you looked at the source code?
"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
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
|
|
|
|
|
I am building Windows CE 6.0 R3 image for VIA board.I have added Start Menu Banner(.bmp) displaying Windows CE to the Start Menu.
When i am scrolling the mouse or keyboard over the start menu, The banner gets erased.Its not refreshed.
I have tried the functions like RedrawWindow(),Invalidate(). but i can't be able to solve the problem. Here is the code related to draw start menu, can any one help me to redraw the start menu banner,
int StartMenu_DrawMenuItem(DRAWITEMSTRUCT *lpdis)
{
LPSTMENUDATA lpst;
RECT rc; HICON hicon;
CStringRes szMenu(g_hInstance);
if (!lpdis)
{
ASSERT(lpdis);
return FALSE;
}
lpst = (LPSTMENUDATA)lpdis->itemData;
if (!lpst)
{
ASSERT(lpst);
return FALSE;
}
CopyRect(&rc, &lpdis->rcItem);
if (lpst->idMenuCmd <= IDM_START_LAST_BANNER)
{
rc.left += sizeSTPegasus.cx; }
if (lpst->idMenuCmd == IDM_START_LOGOFF || lpst->idMenuCmd == IDM_START_SHUTDOWN)
{
rc.left += sizeSTPegasus.cx;
}
switch (lpdis->itemAction)
{
case ODA_DRAWENTIRE:
if (idFirstMenu == lpst->idMenuCmd)
{
CopyRect(&rcMenu, &lpdis->rcItem);
rcMenu.right = rcMenu.left + sizeSTPegasus.cx; }
else if (idLastMenu == lpst->idMenuCmd)
{
rcMenu.bottom = lpdis->rcItem.bottom;
if (hbmSTPegasus) {
HDC hdcmem = CreateCompatibleDC(lpdis->hDC);
if (hdcmem)
{
SelectObject(hdcmem, hbmSTPegasus);
FillRect(lpdis->hDC, &rcMenu,
GetSysColorBrush(COLOR_ACTIVECAPTION));
BitBlt(lpdis->hDC, 0, rcMenu.bottom - sizeSTPegasus.cy,
sizeSTPegasus.cx, sizeSTPegasus.cy, hdcmem, 0, 0,
SRCCOPY);
DeleteDC(hdcmem);
}
}
}
case ODA_SELECT: if ((lpdis->itemState & ODS_SELECTED) && lpst->idMenuCmd)
{
HBRUSH hbrush = CreateSolidBrush(GetSysColor(COLOR_HIGHLIGHT));
SetTextColor(lpdis->hDC, GetSysColor(COLOR_HIGHLIGHTTEXT));
FillRect(lpdis->hDC, &rc, hbrush);
}
else
{
HBRUSH hbrush = CreateSolidBrush(GetSysColor(COLOR_MENU));
SetTextColor(lpdis->hDC, GetSysColor(COLOR_MENUTEXT));
FillRect(lpdis->hDC, &rc, hbrush);
DeleteObject((HGDIOBJ)hbrush);
}
break;
default:
break;
-- Eshwar
|
|
|
|
|
Have project that requires fix protocol over tcp and encryption, need userinterface gui made as well. skype me at: silverbuyer or email me canadametalsauction@gmail.com
|
|
|
|
|
Can someone point me to an example of using Visual studio 2005 with MFC. I would like to make a GUI with a Combo Box that is pre populated with files in an directory on the C drive. Every time the program run its show the files that are in the specified directory. It shows up in the drop down combo box and i can select one file to load or hit cancel. Please Help.
|
|
|
|
|
What kind of MFC App?
1. SDI
2. MDI
3. Dialog Based
For a dialog based application, you can simply drag and drop a combo box on the dialog, attach a member variable to it and perform operations like adding file names.
To add the files in the combo box you can get the file names using FindFirstFile/FindNextFile API's.
What have you done till now? You will have to do a little more work if it's an SDI/MDI application.
You talk about Being HUMAN. I have it in my name
AnsHUMAN
|
|
|
|
|
Thanks for your reply. Sorry i forgot to mention that it's Dialog based. I started building it and I already have the combo box on the GUI and 2 buttons. The reason i dont want to just list them inside the combo box is because i might be adding and deleting files from the directory. So when the program runs I would like the combo box to populate the current files that are in the directory. I know i need to use the CFileFind fucntion to scan the specified directory. But i do not know how to implement it in my program. I try following an example i seen online but im new at MFC progamming in C++.
Thanks
|
|
|
|
|
begin81 wrote: But i do not know how to implement it in my program. Implement what? How to use the CFileFind class, or how to add text to a combobox? Two very different things.
"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
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
|
|
|
|
|
So what if you want to add and delete files on the disk for the directory contents being displayed in the combo box. You can always have a refresh button along side it. Once the user clicks on the "Refresh" button, remove the contents of the combo box and repopulate it.
You can find a sample for CFindFile here[^]
You talk about Being HUMAN. I have it in my name
AnsHUMAN
|
|
|
|
|
From your description it would probably be easier to use the CFileDialog [^] class. However if you insist on doing it manually you can use the DlgDirListComboBox [^].
Binding 100,000 items to a list box can be just silly regardless of what pattern you are following. Jeremy Likness
|
|
|
|
|
Thanks for your reply. Sorry i forgot to mention that it's Dialog based. I started building it and I already have the combo box on the GUI and 2 buttons. The reason i dont want to just list them inside the combo box is because i might be adding and deleting files from the directory. So when the program runs I would like the combo box to populate the current files that are in the directory. I know i need to use the CFileFind fucntion to scan the specified directory. But i do not know how to implement it in my program. I try following an example i seen online but im new at MFC progamming in C++.
Thanks
|
|
|
|
|
If you actually followed the two links that I provided for you you will be amazed to discover that both of them would do exactly what you need. However, if you would rather reinvent the wheel, feel free.
Binding 100,000 items to a list box can be just silly regardless of what pattern you are following. Jeremy Likness
|
|
|
|
|
CfindFile. I already got the Combo box on the Gui Dialog. I dont know were to place the code inorder to search and pre populate the combo box like an enumerator would.
|
|
|
|