|
Take my opinion as a pointer, not a definite answer.
Most likely you are doing something with one of your controls when it is not loaded/initialized yet. For example, say you have a dialogbox named CMainDlg . Now If you try to set text of an editbox in CMainDlg 's constructor like this
CMainDlg::CMainDlg(CWnd* pParent ): CDialogEx(CAccountDlg::IDD, pParent)
{
GetDlgItem(IDC_TEXT1)->SetWindowText("Debug Assertion");
}
then a debug assertion will be shown. A better way will be do this in OnInitDialog like this (or in an event handler, bound with a button)
BOOL CMainDlg::OnInitDialog()
{
GetDlgItem(IDC_TEXT1)->SetWindowText(" No Debug Assertion");
}
So out and out, you are doing a right thing in a wrong way. Hope you understand what I mean
This world is going to explode due to international politics, SOON.
|
|
|
|
|
mackel90 wrote: ...i got a huge project which works nice in release build... No, you just think it is working nicely. The problems just haven't shown themselves visibly yet.
mackel90 wrote: ...I do not want to care about what is wrong, I only want to get my work done quickly... Please do not work on any projects used by folks other than yourself.
"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
|
|
|
|
|
mackel90 wrote: I only want to get my work done quickly
The foresight of that thought sure seems to be an oxy-moron in hindsight
I want to get my work done quickly today, so I can triple my work tomorrow.
I still don't understand how the current release version can work perfectly, unless he broke the project and can't fix it, or the current release version was never fully tested, and it really doesn't work perfectly.
Perhaps the OP is having a really bad day, and is ready to go postal.
|
|
|
|
|
Hi,
I am running derived CAsynSocket class inside a CWinThread Class
I am looking to see if a connection status is still up
would running ping utility durning thr CWinThread::OnIdle do the trick
Thanks
|
|
|
|
|
Do not run the ping utility.
ping.exe is an external file that can be deleted and then your objective will fail.
Instead, send a special packet or use a separate socket to send a packet in the OnIdle function or in a timer event.
|
|
|
|
|
|
No, do not use Ping and do not rely on running it in OnIdle(), you should use a timer.
There are several ways a TCP link can "break" without both sides being properly notified, especially over the Internet, but even on a LAN. If it is important to you to have reliable, persistent links and you have control over the server side code, I suggest you define a keep-alive mechanism.
There are many, many ways of doing this. Over the years I have found the following approach to be sufficient just about anywhere I use persistent TCP connections.
- Determine which side will be sending data the most. Let's call that side A, the other side is side B. Depending on the nature of your applications, side A can be either the server or the client.
- Determine the maximum time a link can be down before reacting to it - 1 second, 10 seconds, 30 seconds, etc. Let's call that T. You do not want to flood the network with these messages, so go as high as you can.
While connected:
- Side A must keep track of the last time a message (data or keep-alive) was sent. If more than T/3 seconds have passed since a message was sent, send a keep-alive message. If the link has gone down, the socket send operation will fail and the program has to react to it.
- Side B must keep track of the last time a message (data or keep-alive) was received. If more than T seconds have passed since a message was received, consider the link down and react to it.
Soren Madsen
|
|
|
|
|
|
what is operator overloading and how it works with code.
|
|
|
|
|
|
it refers to providing additional meaning to normal c++ operators when they are applied to user defined data types
|
|
|
|
|
I want into MDI application to open an menu item on OnLButtonDblClk on client zone in CMainFrame ... so I mapped CMainFrame::OnLButtonDblClk :
void CMainFrame::OnLButtonDblClk(UINT nFlags, CPoint point)
{
TRACE("OnLButtonDblClk\n");
CMDIFrameWnd::OnLButtonDblClk(nFlags, point);
}
but I had an suprise ! I didn't see any TRACE on my doubleclick ... why ?
modified 21-Feb-13 4:54am.
|
|
|
|
|
It's a long time since I did any MFC but do you need to add something to your message map?
|
|
|
|
|
The wizzard did that :
BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
ON_WM_LBUTTONDBLCLK()
END_MESSAGE_MAP()
|
|
|
|
|
Well, as I said, it's been a long time, but I always found the wizard code tended to work 'out of the box', so I cannot see why it would not call the connected function as expected.
|
|
|
|
|
That's why seems to me weird ... I only want to do something on double-click on client area of mainframe ...
|
|
|
|
|
You could try checking with your debugger that your window class fulfils the requirements specified here[^]. Other than that, lots of breakpoints and single stepping through code seems to be the path you must follow.
|
|
|
|
|
The client area consists of the view.
That's the reason why the control flow does not enter the OnLButtonDblClk handler of the frame class.
You will need to create a handler for OnLButtonDblClk in the view class.
However, you can create a handler for OnNcLButtonDblClk in the frame class where the double click on an area outside the view will be handled like the edges of the window, title bar, menu bar etc.
|
|
|
|
|
I try that, and does function where you said : menu area, etc. ... I need to know if the user fire double-click between those areas ... right near client area, I mean in dark area of CMainFrame ...
|
|
|
|
|
I don't think you will get double click messeages in the dark area.
You will however be able to trap the WM_LBUTTONDOWN message in the PreTranslateMessage override in the main frame class.
|
|
|
|
|
Good ideea, I will try tomorow ... thank you.
|
|
|
|
|
I try in follow way :
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_LBUTTONDBLCLK)TRACE("OnDblClick - PreTranslateMessage\n");
return CMDIFrameWnd::PreTranslateMessage(pMsg);
}
but I don't see any traces when I double-click on darrk area of mainframe ... only in CView client area ...
|
|
|
|
|
As I said in my previous message, you will only be able to get WM_LBUTTONDOWN messages.
|
|
|
|
|
// client zone of CMainFrame
Please let the Spy++ Tool to confirm your assumption
(it could be another window)
They sought it with thimbles, they sought it with care;
They pursued it with forks and hope;
They threatened its life with a railway-share;
They charmed it with smiles and soap.
|
|
|
|
|
Hi All,
After reading about parallel programming by multicore processor,I have some doubts.
1>Its undoubtedly best idea for play stations,X-Box [as they have soo... many cores]
But will it prove to be effective for core i7 running 8 parallel process then running 100 thread in Windows 7 64 bit?
2> If some how its managed to make all the process running parallel with less critical resource to then will it give better performance over 100 thread?
3>If not then in which case I can see multicore programming[I am trying VC++ with Opem MP] winning over multi thread in my i7,win 7[64 bit] ,4GB ram?
[it will be great If I can get a code in C++ or JAVA to run in my machine to compare same task running 1>parallel,2>sequence,3>thread]
Eagerly Waiting for the response.
Thanks in advance.
|
|
|
|