|
use the CBS_DROPDOWNLIST style instead of CBS_DROPDOWN .
--------
Well actually they are sort of interesting Nish, on Nudes
|
|
|
|
|
|
Hello,
The MSDN docs don't say how to respond when the serialization tries to serialized an unsupported version (see code snippet). Any ideas?
void MyObj::Serialize(CArchive& ar)
{
if (ar.IsLoading() == TRUE) {
int nVersion = ar.GetObjectSchema();
switch (nVersion) {
case 1:
ar >> m_id;
break;
// unknown version
default:
--> WHAT TO DO HERE????
break;
}
}
else {
ar << m_id;
}
}
|
|
|
|
|
WHAT TO DO HERE????
Throw an exception?
|
|
|
|
|
MSDN doc about CArchive::Serialize features this interface:
virtual void Serialize( CArchive& ar );
throw( CMemoryException );
throw( CArchiveException );
throw( CFileException ); which means that the framework expects the method to throw any of the exceptions listed above. In your particular case, CArchiveException is the appropriate one to throw, with the m_cause member set to CArchiveException::badSchema .
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
I have an application that is very memory intensive being used with other applications that are also very memory intensive. I execute the code that allocates memory in a try/catch block so that I catch any problems that may occur. The problem is that when I try to display a message box to inform the user what happened, my application crashes when MessageBox ultimately calls AfxCallWndProc with a NULL pointer. After looking in wincore.cpp, I was able to see the problem is the FromHandlePermanent call in AfxWndProc returns NULL, and AfxCallWndProc proceeds to used that NULL pointer to call WindowProc. Since the window pointer is NULL, the WindowProc call crashes my app. Is there any way around this short of try/catching all of my AfxMessageBox calls???
|
|
|
|
|
Try using a raw call to Win32 MessageBox instead.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
::MessageBox and AfxMessageBox both have the same problem.
|
|
|
|
|
How come? MessageBox cannot fail in MFC module wincore.cpp , as it has nothing to do with MFC.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
That's what I thought. I tried using ::MessageBox(m_hWnd, "Error message...", "MyApp", MB_OK|MB_ICONEXCLAMATION). My application is an MFC dialog application and I get the following stack
AfxCallWndProc(CWnd * 0x00000000 {CWnd hWnd=???}, HWND__ * 0x01c305c0, unsigned int 134, unsigned int 0, long 21629170) line 215 + 3 bytes
AfxWndProc(HWND__ * 0x01c305c0, unsigned int 134, unsigned int 0, long 21629170) line 368
AfxWndProcBase(HWND__ * 0x01c305c0, unsigned int 134, unsigned int 0, long 21629170) line 220 + 21 bytes
USER32! UserCallWinProc@20 + 24 bytes
USER32! DispatchClientMessage@20 + 47 bytes
USER32! __fnDWORD@4 + 34 bytes
NTDLL! KiUserCallbackDispatcher@12 + 19 bytes
USER32! DispatchClientMessage@20 address 0x77e13974
USER32! MB_DlgProcW@16 + 23 bytes
USER32! UserCallWinProc@20 + 24 bytes
USER32! DefDlgProcWorker@20 + 129 bytes
USER32! DefDlgProcA@16 + 33 bytes
USER32! UserCallWinProc@20 + 24 bytes
USER32! CallWindowProcAorW@24 + 61 bytes
USER32! CallWindowProcA@20 + 25 bytes
_AfxActivationWndProc(HWND__ * 0x014a08f2, unsigned int 272, unsigned int 38734006, long 15133252) line 405
USER32! UserCallWinProc@20 + 24 bytes
USER32! SendMessageWorker@20 + 188 bytes
USER32! InternalCreateDialog@28 + 2472 bytes
USER32! InternalDialogBox@24 + 161 bytes
USER32! SoftModalMessageBox@4 + 1399 bytes
USER32! MessageBoxWorker@4 + 302 bytes
USER32! MessageBoxExW@20 + 82 bytes
USER32! MessageBoxExA@20 + 111 bytes
USER32! MessageBoxA@16 + 36 bytes
MyFunc() calls messagebox here!
|
|
|
|
|
Never thought about it! This (fascinating) stack dump shows that MessageBox is executed in the context of the local message pump. If one considers it carefully, it makes a lot of sense after all.
Well, if it's lack of memory what's causing the error in AfxCallWndProc (which I'm far from sure), you might try reserving some safeguard memory that is released on the catch block just before calling AfxMessageBox . Please tell us if this works (in case you decide to test it.)
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
|
Just a thought here - I think it might not be a good idea to use a messagebox in this context. I've worked on code that had some very strange things happen when message boxes were invoked 'asynchronously' wrt the main user gui.
Consider what would happen if a 'proper' message box were on screen (by 'proper' I mean used in response to a user 'action' - validation etc) and another thread popped up a message box. First, neither mb will have proper app modality, allowing the user to do all manner of 'things they shouldn't do'. Also, the serialization of messages in the queue seems to get messed up with in ways that are almost impossible to trace.
You could ship a 'debug' app - which would enable you to use an assert dialog, but I think its better to have some designated status bar or dialog for this type of alert.
Just my 2 cents, and I could be missing something.
|
|
|
|
|
Hi,
Does anyone now how to debug a VC++ COM component that is a Pipeline component in a Commerce Server 2000 pipeline
Cheers
Ollie
|
|
|
|
|
Create an application that will call the pipeline. That is what we do with our pipeline.
Michel
It is a lovely language, but it takes a very long time to say anything in it, because we do not say anything in it, unless it is worth taking a very long time to say, and to listen to.
- TreeBeard
|
|
|
|
|
Hello, not sure where to ask this and it's probably a stupid question but here goes:
I currently use Visual c++ 6.0.
If I purchase and install Visual Studio .net will my projects still compile in vc 7 or will I need to make changes?
I really don't want to have to learn C# or anything else at this point so is there any other advantage to using VC 7?
Ground Zero Tech-Works
http://www.ayanova.com
|
|
|
|
|
J Cardinal wrote:
f I purchase and install Visual Studio .net will my projects still compile in vc 7
Yes,there is no problem.
Mazy
"The path you tread is narrow and the drop is shear and very high,
The ravens all are watching from a vantage point near by,
Apprehension creeping like a choo-train uo your spine,
Will the tightrope reach the end;will the final cuplet rhyme?"Cymbaline-Pink Floyd
|
|
|
|
|
Yes,there is no problem.
This is simply not true. There are reports of numerous projects that don't convert/compile. The problems range from project not converting as it should and MFC changes, to display of (terminal) compiler bugs in MSVC7.
This is not something I'm making up, MS themselves acknowledge these problems.
Not to mention the MSVC7 bug in ATL that makes it uncompilable. :->
|
|
|
|
|
hmmmmmm,Can you tell me some of them or show me the link?
Mazy
"The path you tread is narrow and the drop is shear and very high,
The ravens all are watching from a vantage point near by,
Apprehension creeping like a choo-train uo your spine,
Will the tightrope reach the end;will the final cuplet rhyme?"Cymbaline-Pink Floyd
|
|
|
|
|
|
Thank you,I'll check it soon.
Mazy
"The path you tread is narrow and the drop is shear and very high,
The ravens all are watching from a vantage point near by,
Apprehension creeping like a choo-train uo your spine,
Will the tightrope reach the end;will the final cuplet rhyme?"Cymbaline-Pink Floyd
|
|
|
|
|
J Cardinal wrote:
If I purchase and install Visual Studio .net will my projects still compile in vc 7 or will I need to make changes?
Depends on your code. I've had relatively few problems; most of the code i've had to change was code that *should* have been changed anyway, but wasn't caught under VC6 (message map function prototypes are a huge culprit). Your milage may vary.
--------
Well actually they are sort of interesting Nish, on Nudes
|
|
|
|
|
I bought Vs.net pro and uninstall it today.
To much problems with MFC , OLE , Windows 95/NT.
I'll be back only after service pack 1/2.
Pavel Sokolov,
CEZEO software,
LanTalk Network,
http://www.cezeo.com
http://www.lantalk.net
|
|
|
|
|
i need to access the frame extracted from an avi and deal with it as it was a bmp.
and i was wondering if this function AVIStreamGetFrame returns a DIB, how can i deal with it to have the bmp that i want.
Thanx.
|
|
|
|
|
What happened to reading documentation?
From the documentation for that function it reads:
Return Values
Returns a pointer to the frame data if successful or NULL otherwise. The frame data is returned as a packed DIB.
|
|
|
|