|
Thanks all for your answers, but as while I have some request, that result that I thought the program in wrong way ... anyway, is a good your ideea, Albert, in case that I need it !
|
|
|
|
|
Even if you create it manually, there is not guaranty that the style can be change after it is created.
Watched code never compiles.
|
|
|
|
|
But he says he has to change it on the initial update... which means he only changes it once based on something, so creating it dynamically should work for him.
|
|
|
|
|
Hi,
I have a derived CAsyncsocket class in a member of my CWinThread Class
"I am trying to have each socket connection run in its own thread"
I am trying to have four threads for four connections
in the ::InitInstance of the CWinthread I get an exception in the CAsynSocket:: create
method My question is is the socket object completly created by the time it hits the
Initinstance of the CWinthread its living in
thanks
|
|
|
|
|
The CAsyncSocket class and the CWinThread class you put it in have little to do with each other by default, when it gets created depends on where you put it. You have to show us your code for us to be able to be more helpful with your issue.
Don't forget you have to call Create() on the socket class to actually create a socket.
http://msdn.microsoft.com/en-us/library/3d46645f%28v=vs.80%29.aspx[^]
|
|
|
|
|
Casynsocket derived is a member of CWinThread dervied I figure by the time it hits ::initinstance it will be created meaning "CAsynSocket" object
going back back to another thread I created regarding exceptions
if implement a catch for a derived CInternetExeption I am assuming CInternetException would catch socket errors
along with having a EnableStatusCallback procedure I be able to get more specfic information on the type of exception I am dealing with do any the create parms have bad ptrs that would be a memory exception or is it internet/socket exception
am I on the right track ??
|
|
|
|
|
As far as the CAsyncsocket... what you said doesn't make much sense... but I'm not sure if it's lost in translation.
|
|
|
|
|
I should re-word my question would would CInternetExcption catch an exception resulting from sockets
thnaks
|
|
|
|
|
I want to recognize tables inside PDF, now I have rectangles of the PDF Text Objecthttp://i.stack.imgur.com/aHK3Q.png(the red rectangles in the picture).I'm confused about how to implement this rectangle algorithm. The programming language what I use is VC++.
What I want to get is:http://i.stack.imgur.com/aPxz1.png
The Result is a perfect table with header, rows, columns.Can anyone help me? How to rectangle table from these rectangles? These rectangles' orginal point (0, 0) is on the bottom-left point. x coordinate grow from left to right, and y coordinate grow from bottom to up.I don't want to use 3rd party. I want to implement this function through rectangle algorithm.
Any help would be greatly appreciated!
|
|
|
|
|
PDF content is held in a codified format inside the file and the information about how to render it to a display device is kept with the data. You can either use one of the many free libraries available on the internet or, if you do not want to use a third-party library, you need to get a copy of the PDF specification from Adobe[^] and write your own handler.
|
|
|
|
|
Hi,
I am basically a MFC newbie my background is MainFrame Assembler and I am begining to feel comfortable writting OO code
my next hurdle is execption processing I have read the documentation and MFC has its own abstract classes for exception handling
The way I am understanding it is as follows an exception is cought by a
catch paragraph.. depeding on the type e.g. for a memory exception I would have to have a derived class of CMemoryException e.g
class Mymemoryexception : public CMemoryException
and do catch (Mymemoryexception *)
If I want more information I would have to register a exception handler
my question is the following what is the scope of the exception handler
is it perthread meaning if the catch paragraph is executing whitin a thread then it
will catch all exceptions for the thread ??
is the scope per object ??
I guess I am hoping somebody can give a better expliantion then the documentation from
MSDN
thanks
|
|
|
|
|
A catch clause will cath the specified exception and any derived exception.
In practice, if you don't write library for others, you rarely have to throw your own exception (and even less to catch them).
Generally you don't have to use exception handler and you should not have too much throw or catch in your code as exception are typically used for things that should not occurs.
MSDN documentation (and Google) are more complete documentation. It is not easy to explain it in a paragraph or two.
MFC and Visual C++ exception handling have some difference with standard C++ exceptions. For example catch ... will catch Win32 exceptions, MFC exceptions are thrown by pointer and exception specification is not implemented.
Philippe Mori
|
|
|
|
|
Somebody will throw the ball and somebody should catch it. So you should know the possibility of piece of code that throws and should decide where to catch and what exactly to catch.
Say, if you place a try and catch block on the main() or Win main, and leave the catch block empty or look for a more generic CException, all the exception can be caught if it is not handled by the called functions. Which is bad in a big application with millions of code.
So define the try..catch to a narrow down piece of code, and catch the specific exception say filenotfound exception should caught from the piece of code that opens a file.
More Info: Exception Handling for C# Beginners[^]
|
|
|
|
|
would it work If I define multiple catchs each with a different exception type
thanks
|
|
|
|
|
Sure.
try
{
}
catch( CDBException dbException )
{
}
catch( CMemoryException memException )
{
}
catch( CResourceException resException )
{
}
catch(...)
{
}
"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
|
|
|
|
|
Ok so howabout this to know what type of error I got in what object
class Myexception : public CException
{
public:
catchit();
}
Myexception::catchit()
{
catch( CDBException dbException )
{
ReportError(MB_OK,cdbexcpid..)
}
catch( CMemoryException memException )
{
}
catch( CResourceException resException )
{
}
catch(...)
ReportError(OK,typeofexcpid)
{
runtimeptr = GetRunTimeClass();
// report on type of error in what object
}
does this sound like doable idea
thanks
|
|
|
|
|
Adding to David's reply, if you have one exception derived (subclassed) from another one in the list, put the catch for the derived (more specific) exception first or you'll never get to it. For example, catch divide-by-zero before arithmetic-exception.
Cheers,
Peter
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
|
|
|
|
|
ForNow wrote: for a memory exception I would have to have a derived class of CMemoryException
e.g
class Mymemoryexception : public CMemoryException Deriving your own class is not a requirement.
"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
|
|
|
|
|
Hi,
I have an issue when using this function,
the scenario is like that:
thread 1 invokes and creates thread 2 which monitors some data, using pthread_create with PTHREAD_CANCEL_ENABLE and PTHREAD_CANCEL_DEFERRED, then when thread 1 finishes his job it cancels thread 2 using pthread_cancel and everything is working fine, but the problem is that it seems that the threads are dead but still connected to the main projcess.
I am usin QNX OS which is a BSD flavor, same as Unix,
process view:
37560404 1 ./omadm_client 10r JOIN 5
37560404 2 ./omadm_client 10r CONDVAR
37560404 3 ./omadm_client 10r CONDVAR
37560404 4 ./omadm_client 10r REPLY
37560404 5 ./omadm_client 10r REPLY
37560404 6 ./omadm_client 10r DEAD
37560404 7 ./omadm_client 10r DEAD
37560404 8 ./omadm_client 10r DEAD
37560404 9 ./omadm_client 10r DEAD
37560404 10 ./omadm_client 10r DEAD
is it ok? how can I detach them from my main proccess? I do not see the point of uisn pthread_join unless it needs to be invoked for the termination process..
Many thanks,
Yossi,
|
|
|
|
|
It has been a long time since I used QNX, however what follows applies to all kernels and operating systems AFAIK:
- cancelling a thread often is unreliable; in general you don't know what state the thread and its data is in when you issue the cancel command, so you could end up with inconsistent data, with locked resources, etc.
- the better approach is "cooperative termination", where the thread's code helps in the thread either keeping active or exiting regularly.
So what I prefer to do in a monitoring thread typically looks like this (pseudo-code):
while(!enough) {
do whatever is needed for monitoring
wait a while
}
and when the caller wants it to terminate, just have it set the global boolean "enough" to true, the monitoring thread will exit (although not immediately, but that most often is OK).
|
|
|
|
|
Hi,
Thanks for the answer,
it is a problem because this thread is monitoring a file which it waits (sleeps) on it till something changes, so if nothing changes we will still sleep on the IO forever,
I free the global resources of the thread so this is not my cuncern, but do you know how to detach the thread from the process?
Many thanks,
Yossi,
|
|
|
|
|
ytubis wrote: do you know how to detach the thread from the process?
Sorry, I don't recall. I'm sure you could find that easily in the doc though.
ytubis wrote: if nothing changes we will still sleep on the IO forever
I tend never to do that; when the OS supports it, I prefer giving a reasonable timeout to all system calls, and then implement my own loop around it (possibly with logging and other logistics).
|
|
|
|
|
hi
i have developed program using opencv with mfc and i can't get the coordinates (x,y) of image in the static box using mouse click. image opens in separate window. the code is as:
void on_mouse( int evt, int x, int y, int flags, void* param )
{
if (evt = CV_EVENT_LBUTTONDBLCLK)
{
CString Blue, Green;
Blue.Format(_T("%d"), x);
Green.Format(_T("%d"), y);
SetDlgItemText(m_hWnd, IDC_Blue, Blue);
SetDlgItemText(m_hWnd, IDC_Green, Green);
}
}
the handle
HWND m_hWnd; is defined at beginning where the header files are included (i might be doing it wrong since i'm not good at programming with handle). the mouse callback function is defined in a thread as
cvSetMouseCallback("box.png", on_mouse, 0);
any idea what is wrong with this code.
Regards
Jawad
|
|
|
|
|
You are not specifying exactly what the problem is, but I am going to guess that you look at the x and y values and determine that they are incorrect.
If that is the case, try calling ScreenToClient()[^] to convert the screen coordinates to client coordinates of your dialog. You have to pass in the m_hWnd of you dialog as the first parameter.
Soren Madsen
|
|
|
|
|
sorry for not well explained
actually the problem is that static box does not show any value when mouse is being clicked. means it remains unchanged as it was.
Jawad
|
|
|
|