|
Can you show the main loop
Papa
while (TRUE)
Papa.WillLove ( Bebe ) ;
|
|
|
|
|
Try giving a bigger timeout
and why dont you try pcap_live_dump
Check in the developper pack the sample kdump and pktdump_ex
Papa
while (TRUE)
Papa.WillLove ( Bebe ) ;
|
|
|
|
|
Does it make sence to use WaitForSingleObject for UI thread. What I found if I call
WaitForSingleObject(m_hUIThread, INFINITE) where m_hUIThread is handle to thread object type CWinThread my call will stuck for ever. I check thread status is always waiting for user request. Which means in most of cases GetMessage() in CWinThread resulting this status. I just want to know is this true?
Thanks,
Alex.
|
|
|
|
|
You need to use MsgWaitForSingleObject and if you get a windows message, you need to pump it through the UI thread's message handler. Use the result of MsgWaitForSingleObject call to determine if the action returning is failed, timeout, message, or event was triggered. Some synchronization objects also return abandoned.
|
|
|
|
|
|
am remodeling the code in my project.
I had one class (lets say CClass1 ) who was inhereted from let's say CBaseClass .
Now I have to remodel this class into 2 classes CClass3 & CClass2 . Both are inherited from CBaseClass (which is a base class for many other classes too)
The problem is in MEMBERS which are now half in CClass3 and half in CClass2 . And I need a way for them to comunicate.
So I tried to solve this using STATIC members in new class CBaseClass2 which I derived from CBaseClass and then I derived CClass2 & CClass3 from this class( CBaseClass2 ).
But i have errors:
error LNK2001: unresolved external symbol "public: static int CBaseClass2::sta_member1" (?sta_member1@CClass2@@2HA)
Any ideas to this question. I think this must be known to a lot of people.
Thanks in advance
|
|
|
|
|
If it won't break any already existing code, why not put all the shared variables in CBaseClass? If you're trying to declare them as static in a middle class, did you actually initialize them in the header file below the class definition? If not, that's probably why you got the errors.
My articles
www.stillwaterexpress.com
BlackDice
|
|
|
|
|
can you please give me an example. 'couse I most defenitly didn't do this.
Love is the law, love under will.
|
|
|
|
|
|
tnx. But i think the errors are becouse of this:
Functions declared with the static modifier by definition have file scope. Static variables have the same limitation. Trying to access any static variables from outside of the file in which they are declared can result in a compile error or LNK2001.
(from MSDE)
Love is the law, love under will.
|
|
|
|
|
but if you declare it within the class definition, you just have to intialize it outside of the class definition in the same header file. as long as the class is included, you should be able to reference it as CMyClass::m_nCounter anywhere the header file is included.
My articles
www.stillwaterexpress.com
BlackDice
|
|
|
|
|
Since the variables are common to both CClass3 and CClass2 , shouldn't they therefore belong in CBaseClass ?
"Ideas are a dime a dozen. People who put them into action are priceless." - Unknown
|
|
|
|
|
why dont you create an another struct or class(say 'info' class) that has these members that u need to pass from one class to the other,then create objects of this info class in both ur classes,then make a member function in ur class2 and/or class3,which acceptz thiz info object as a function parameter.
hope thiz helpz!
cheerz.....
"faith, hope, love remain, these three.....; but the greatest of these is love" -1 Corinthians 13:13
|
|
|
|
|
one thing u can do is create a friend function which is common to both the classes then u can do inter communications using ur friend function which'll act as bridge between to classes.
if ur not able to do it by ur-self ask me
|
|
|
|
|
You can validate on kill focus. When user desided to change focus you can call validation function (usualy override DDX_) if validation didn't pass set focus back or ...
Thanks,
Alex
|
|
|
|
|
What does validation have to do with the OP's question?
"Ideas are a dime a dozen. People who put them into action are priceless." - Unknown
|
|
|
|
|
Sorry I was answering for LaiJun posting and by mistake got in that thread.
|
|
|
|
|
Hello,
Classes that depend on eachother (cyclic dependancy) is bad design. Try to isolate all general operations and put them in another class, where your two other classes derive from. So all the functions that need the shared variables will have to go into the "general" class
Hope this helps
I also got the blogging virus..[^]
|
|
|
|
|
hey there !
lately, i wrote kinda framework which every kind of module (dll) can hook to and push its respective data (be it video or audio in bitstream format). this data will then be executed (pushed) through a callback which has been declared by another sink (dll) that connected to the framework before.
before i continue... the bitstream data in the source dll origins at an internal samplegrabber. (ex.g. video-capture.dll delivers video data, audio.dll delivers pcm-samples, etc.) ... so, if video-data from a digital NTSC-cam arrives at its respective filter, the filter informs the framework that i got new data. then the framework calls a method from another module with a pointer to the data-buffer as interface. now the target module can process the new buffer (ex.g. push it to a filter that excepts a bitstream which then pushes it to an avi-mux, whatever...)
to come to the main point: a sink-dll which connected to the framework is ex.g. record.dll. this module accepts both video and audio data. so the record-dll-graph looks like a video-source-filter and an audio source filter both connected to an avi-mux which leads to a file-writer.
to push the video-samples (bufferstream) into the avi-mux, i wrote an own video-filter. the same should happen with the audio-bitstream. now would be the time to write an audio-filter equal to the video-filter to push into the avi-mux. my question is whether there is an already existing filter that accepts bitstream as input or not. i've already jerked around with the running object table (ROT). would this be sorta solution or is there any easier way ?
fact is that copying the video-filter is easy, but the callback would happen about 44100 times per second (at pcm 44.1 kHz). certainly i could buffer the audio data and push it via callback after it reached 50kb for example. then i'd have to care about sync techniques again... moreover i need to delay arriving audio-bit-chunks, i.e. a dll gets an audio-chunk and has to push it again after 100ms without modification, whereas chunks arrive at 44.1kHz.
so, in brief:
* is there a filter that accepts bitstream as input ?
* what's the best way to delay a bitstream-sample ?
thanx in advance for any clues...
peter
|
|
|
|
|
I have a property page and 5 edit boxes. I need to validate the data entered in each edit box.
How do I know which edit box is currently active and can I use the OnChar()
message handler to process the data keyed by the user.
laiju
|
|
|
|
|
laiju wrote:
How do I know which edit box is currently active...
See the WM_SETFOCUS message.
"Ideas are a dime a dozen. People who put them into action are priceless." - Unknown
|
|
|
|
|
I used the WM_SETFOCUS message with its following handler .But the function is not getting the call at all..
I have included the ON_WM_SETFOCUS() in the message map.
CPropertyPage::OnSetFocus(pOldWnd);
CWnd *pWnd = this->GetActiveWindow();
CEdit *pEdit = (CEdit*)pWnd->GetActiveWindow();
int iCtlID = pEdit->GetDlgCtrlID();//RETURNS controlID of currently
active editbox
switch(iCtlID)
{
case IDC_EDIT_OSD_ITEM_POSX:
break;
case IDC_EDIT_OSD_ITEM_POSY:
break;
case IDC_EDIT_OSD_ITEM_WIDTH:
break;
case IDC_EDIT_OSD_ITEM_HEIGHT:
break;
default:
break;
}
laiju
|
|
|
|
|
You can validate on Kill focus when user desided to change focus. If it didn't pass validation setfocus back.
|
|
|
|
|
That is a good suggestion which i have tried already.
I would like to set the characters typed by the user restricted to AlphaNumeric characters so that all other special characters and key strokes are not accepted by the edit control in the property page.
Any idea how this can be done.
laiju
|
|
|
|
|
Look list below. I don't remember exact name of functions, but be cariful some of this functions don't use locale to identify is for example "." in non english language dot or could be letter.
Routine Character test condition
isalnum, iswalnum, _ismbcalnum Alphanumeric
isalpha, iswalpha, _ismbcalpha Alphabetic
__isascii, iswascii ASCII
iscntrl, iswcntrl Control
__iscsym Letter, underscore, or digit
__iscsymf Letter or underscore
isdigit, iswdigit, _ismbcdigit Decimal digit
isgraph, iswgraph, _ismbcgraph Printable other than space
islower, iswlower, _ismbclower Lowercase
_ismbchira Hiragana
_ismbckata Katakana
_ismbclegal Legal multibyte character
_ismbcl0 Japan-level 0 multibyte character
_ismbcl1 Japan-level 1 multibyte character
_ismbcl2 Japan-level 2 multibyte character
_ismbcsymbol Nonalphanumeric multibyte character
isprint, iswprint, _ismbcprint Printable
ispunct, iswpunct, _ismbcpunct Punctuation
isspace, iswspace, _ismbcspace White-space
isupper, iswupper, _ismbcupper Uppercase
iswctype Property specified by desc argument
isxdigit, iswxdigit Hexadecimal digit
mblen Return length of valid multibyte character; result depends on LC_CTYPE category setting of current locale
Alex
|
|
|
|