|
|
Hi,
Is there a way to catch Exceptions in my SDI MFC application in a very low level?
What I mean: I work with an SQL database and it may be that I have an error in the SQL syntax etc. In this case a specific exceptions is thrown.
I do not want to catch it somewhere in my code for View/Document but rather somewhere in the application object and then just display an error message and terminating my application the right way (including calling of all destructors).
When I do not catch them, I get a "Runtime error" in the debug version. I would like to have this similar behaviour.
Regards,
Niki
|
|
|
|
|
You can add a global exception handler using the SetUnhandledExceptionFilter Function[^] and catch all SQL related errors and return EXCEPTION_EXECUTE_HANDLER for all other exceptions or maybe handle them as well.
Best Wishes,
-David Delaune
|
|
|
|
|
|
i can easily send mails with ASP VB etc..
but i could not send mail with "CDO.Message" in C++
i have tried lots of sample code around the web
but none of them worked well,
i am always getting lots of compiler error
please , could you show me a working sample that uses "CDO.Message"
Here is a sample[^] from MSDN
envirounment Visual Studio .NET 2003
note :
i do not want to use a pre-written SMTP class (FireWall problems etc..)
thanks.
|
|
|
|
|
Is there a way to tell Visual Studio 2008 to not run the Manifest Tool at all during a build?
I have created my own custom manifest resource which I embed into the EXE by myself.
Even though it's possible to tell the manifest tool not to embed the manifest, I can't stop it from creating a separate manifest file called "AppName.exe.manifest"
It's a pain to have to delete this extra manifest file every time I build the project.
Does anyone know how to stop the Manifest Tool from running?
|
|
|
|
|
What if you go to the project/Linker/Generate Manifest File setting and set it to no?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I forgot to check in the Linker properties! I was only looking in the Manifest Tool properties.
I'll give that a try, thanks Mark!
|
|
|
|
|
Hi,
I am trying to serialize all objects stored in a CArray but if a trace it through, it is calling the default SerializeElements which understandably does not serialize the objects correctly. I want this to call mt object's Serialize method.
I have tried adding my own helper but the compiler says that it already exists. This may be because I have used DECLARE_SERIAL and IMPLEMENT_SERIAL macros. MSDN says that if you use these macros, the helper function will be implemented, but if that is so, why isnt it being called?
Does anyone have any ideas what I can try ?
TIA
Tony
|
|
|
|
|
Its OK, I figured it out. It was nothing to do with the DECLARE_SERIAL and IMPLEMENT_SERIAL macros
DUH!
|
|
|
|
|
Good to know.
IMHO object serialization is one of most appealing features of MFC .
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
CPallini wrote: IMHO object serialization is one of most appealing features of MFC.
I've never used it after initial learning. I'm too much of a file format control freak...
Iain.
|
|
|
|
|
I like to have control on file format too. Anyway, automatic object (re-)creation is too appealing to me.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Hello,
I have some code which has a dialog box and a list control placed on it, and I handled the WM_LBUTTONDOWN message on it, which perfectly executed when the code was compiled in Visual C++ 6.0. But the same code, when ported to VS 2005, does not respond to this message at all, although the code compiles and links fine in VS 2005. I tried to handle the notification message, NM_CLICK also, on the List Control which is on the dialog box, but to no avail. What must be the problem?
Please suggest the remedy.
Thanks,
Software Developer
Sanjay Khapre
|
|
|
|
|
From whatever you've said looks like it should work and can't guess anything else, we need more information on how you are calling/showing this dialog.
|
|
|
|
|
Where are you handling (or trying to handle) these messages....in the dialog class or
a CListCtrl-derived class?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I am handling WM_LBUTTONDOWN message in a CListCtrl-derived class, but not getting why it's not working. When this project was in Visual C++ 6.0, it was running fine, but now that I have converted this to Visual C++ 2005, it is failing to run, although it compiles fine, and creates the DLL.
Software Developer
Sanjay Khapre
|
|
|
|
|
This works for me - all the message/notification handlers get called:
#pragma once
class CReflectedListCtrl : public CListCtrl
{
DECLARE_DYNAMIC(CReflectedListCtrl)
public:
CReflectedListCtrl();
virtual ~CReflectedListCtrl();
protected:
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnNMClick(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnNMRClick(NMHDR *pNMHDR, LRESULT *pResult);
};
#include "stdafx.h"
#include "MyApp.h"
#include "ReflectedListCtrl.h"
IMPLEMENT_DYNAMIC(CReflectedListCtrl, CListCtrl)
CReflectedListCtrl::CReflectedListCtrl()
{
}
CReflectedListCtrl::~CReflectedListCtrl()
{
}
BEGIN_MESSAGE_MAP(CReflectedListCtrl, CListCtrl)
ON_WM_LBUTTONDOWN()
ON_NOTIFY_REFLECT(NM_CLICK, &CReflectedListCtrl::OnNMClick)
ON_NOTIFY_REFLECT(NM_RCLICK, &CReflectedListCtrl::OnNMRClick)
END_MESSAGE_MAP()
void CReflectedListCtrl::OnLButtonDown(UINT nFlags, CPoint point)
{
CListCtrl::OnLButtonDown(nFlags, point);
}
void CReflectedListCtrl::OnNMClick(NMHDR *pNMHDR, LRESULT *pResult)
{
*pResult = 0;
}
void CReflectedListCtrl::OnNMRClick(NMHDR *pNMHDR, LRESULT *pResult)
{
*pResult = 0;
}
What are you doing different? If the message handlers don't get called,
does the constructor ever get called? Is the control being created successfully?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Yes Mark,
Thanks a ton for the code snippet. I have the same code snippet, and as you asked, the required no. of CListCtrl-derived class objects are also getting created successfully, but still the events, WM_LBUTTONDOWN and WM_LBUTTONDBLCLK for those objects are not getting invoked in Visual C++ 2005! I am puzzled, why is this happening!
Warm regards,
Software Developer
Sanjay Khapre
|
|
|
|
|
SanjaySMK wrote: the required no. of CListCtrl-derived class objects are also getting created successfully
Are you sure? How are you verifying that?
What code are you using to create your custom control class?
If the controls are in a dialog, how are you associating your
custom control class with a control on the dialog?
I tested on a dialog by adding this member to the dialog class
CReflectedListCtrl m_ListCtrl;
and associating it with a ListView control on the dialog resource by
adding this to the dialog class' DoDataExchange()
DDX_Control(pDX, IDC_LIST1, m_ListCtrl);
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I called a message box from within the constructor of CListCtrl-derived class for which I declared two objects in its parent dialog class, and on both of their construction, I get this message box twice. That's how I ensured.
Software Developer
Sanjay Khapre
|
|
|
|
|
That covers the C++ object....you also need the HWND object.
Again, how are you associating the control with the C++ object?
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I am subclassing both CListCtrl-derived class and the Combo box objects.
Software Developer
Sanjay Khapre
|
|
|
|
|
Still not answering my question however
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Sorry if I haven't answered your last question. The thing is, that subclassing is used in case of CListCtrl-derived class, the reason why I don't see its varible entries inside DoDataExchange, hence the problem. That means the requirement is that of making LBUTTONDOWN and LBUTTONDBLCLK work with subclassed windows of CListCtrl-derived class. Can you help me out with this?
Thanks in advance.
Software Developer
Sanjay Khapre
|
|
|
|