|
Change from
Quote: return NULL; //error is in here
to
return it;
Veni, vidi, vici.
|
|
|
|
|
Hi,
Thanks.
But the logic of the code is if the node matches wuth it then return it else return nothing.
Thanks,
Saimanti
|
|
|
|
|
The 'return it ' I suggested returns childs.end() that is the past-the-end iterator (a 'typed' NULL , roughly speaking).
Veni, vidi, vici.
|
|
|
|
|
Thank you. It worked. But now it is giving another error..
error C2451: conditional expression of type 'std::_Vector_iterator<_Myvec>' is illegal
The code below:
bool _tagXMLNode::RemoveChild( LPXNode node )
{
XNodes::iterator it = GetChildIterator( node );
if( it )
{
delete *it;
childs.erase( it );
return true;
}
return false;
}
Thank in advance,
Saimanti
|
|
|
|
|
I did..
bool _tagXMLNode::RemoveChild( LPXNode node )
{
XNodes::iterator it = GetChildIterator( node );
if( it != childs.end())
{
delete *it;
childs.erase( it );
return true;
}
return false;
}
Is this right?
Thanks,
Saimanti
|
|
|
|
|
It should be correct.
Veni, vidi, vici.
|
|
|
|
|
Thank you very much...
Saimanti
|
|
|
|
|
bool _tagXMLNode::RemoveChild( LPXNode node )
{
XNodes::iterator it = GetChildIterator( node );
if( it != childs.end() ) {
delete *it;
childs.erase( it );
return true;
}
return false;
}
|
|
|
|
|
is this funtion create an event in a asynchronized way? i.e use a background thread?
if I use a timeSetEvent() in a call back function:
void CALLBACK TimerProc1( UINT uID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2 ) {
read bus data;
if (data == true) then
timeSetEvent( 5, 1, TimerProc3, 0, TIME_ONESHOT ) ;
}
No timeKillEvent(), then is that means the code will create many events in many threads, right? that is , no release resource.
|
|
|
|
|
if I use same parameters in a timeSetEvent(), then call timeSetEvent() twice, is that mean I created 2 different events?
or Sencond call reset the timer?
|
|
|
|
|
I have an application, there are 2 loops, one is message loop, one is a timeSetEvent() loop.
There is a global variable in both loops.
Now I meet a problem about redraw the screen. The situation like:
wndProc (UINT message, WPARAM wParam, LPARAM lPara)
{
if (GetTickCount() - GVarTck > 4000) then
redraw screen;
switch (message) { handle message;}
}
///////////////////////
OnPaint() {
if (g_timeEvent == 0)
timeSetEvent(50, 5, RefreshScreen,0, TIME_ONESHOT)
}
void CALLBACK RefreshScreen()
{
do Refresh thing;
GVarTikc = GetTickCount();
timeSetEvent(50, 5, RefreshScreen,0, TIME_ONESHOT)
//With GetTickCount() meassured, the time of refreshScreen() is
// about 20 ms.
}
|
|
|
|
|
Why do you need to use a timer to decide when to redraw the screen? You should do it in response to a WM_PAINT message, and you can force a repaint by calling the InvalidateRect() function.
Use the best guess
|
|
|
|
|
Hi, I wonder how much is the cycle of message loop.
I looked through some articles in MSDN, but no articles gave an explain about how much time one cycle message loop needs.
Is the message loop depends on hardware, or OS decide it? and if I have a timer event in my program, then is the message loop has higher priority?
|
|
|
|
|
econy wrote: Is the message loop depends on hardware, or OS decide it? Both I'd immagine. Seems like the answer would be non-deterministic, I'm no expert but Windows being a non real-time OS could and will preempt your program and your message pump for some undetermined time.
Maybe you could get some info using this[^]
econy wrote: timer event in my program, then is the message loop has higher priority?
Not normally see here.[^]
|
|
|
|
|
econy wrote: Hi, I wonder how much is the cycle of message loop.
Approximately 100 messages per second.
|
|
|
|
|
Does anyone meet the sitation when a image with many horizontal lines, with low levels zoom (when image is fit to window), is seen with moire effect ? And the drawing is made in classic way:
...
pDC->SetStretchBltMode(COLORONCOLOR);
pDC->StretchBlt(xDst, yDst, nDstWidth, nDstHeight, pMemDC, xSrc, ySrc, nSrcWidth, nSrcHeight, SRCCOPY);
...
I had tried with stretch mode HALFTONE, with the same results ...
After all, I dind't know where the problem come ... (P.S. I draw with GDI).
|
|
|
|
|
You might try my DLL[^].
Veni, vidi, vici.
|
|
|
|
|
Thank you, I doubt that you have an VC6 version of your project ... Do you ? And one thing, what is the source of the problem ? From where the problem came from ?
|
|
|
|
|
Nope. However, the DLL project contains just two important files, namely resample.c and resample.h . You may generate a DLL project skeleton via Visual Studio 6 Application Wizard and then add such files to it (probably you have to replace the generated header and source).
It should be simple.
You may even embed the resample.c and resample.h content directly into your project (that is without the need of loading the DLL ).
Veni, vidi, vici.
|
|
|
|
|
It looks like someone has given you a solution, so I'll explain a bit why this happens.
The resizing of your image using GDI is a simple re-sampling algorithm. When you shrink it, pixels in a horizontal and vertical direction are removed, at a semi regular spacing, to make the image fit the new size.
This has the effect of producing a horizontal and vertical waveform in your image.
Your parallel lines in the image, also make up a wave pattern.
When these two wave patterns interact, you get an interference pattern and see the Moire' effect.
http://en.wikipedia.org/wiki/Moire_effect[^]
|
|
|
|
|
Hi all,
I'm about to embark on my first development project. I'm really happy to see so much community spirit and collaboration going on online. Im going to be using the Neurosky SDK with C++ in order to read brainwave data, and I'll be using that data to manipulate the responsiveness of an Xbox 360 controller depending on how well the user is concentrating. Hopefully it'll be a fun little tool to assist gamers in staying alert!
If anyone has experience with XINPUT and has some pointers to set me off in the right direction that would be great!
I do have a specific question too. - How best to approach the issue of Computer Games reading directly from the Xbox controller and ignoring my program altogether?
All suggestions welcome!
|
|
|
|
|
This is really not a C++ question, and I suspect you would get better support by looking at some of these links[^].
Use the best guess
|
|
|
|
|
Kindly send or inform me if you can help me out.
Thanks
|
|
|
|
|
Please do not cross post. Pick one forum and stick to it.
|
|
|
|
|
Trying to build my own source filter (AVI format) I always get connection error with AVI Splitter.
Please take in mind that I am trying to open a fully functional avi video file, that works just fine with microsoft's async file and I that tried at the very begginng to change my mediatype declaration without success.
The error description in the graphEdit is "These filters cannot agree on connection. Verify type compatibility of input pin and output pin. Return code VFW_E_INVALID_FILE_FORMAT
0x8004022F".
DXerr.exe reports :
HRESULT: 0x80040207 (2147746311)
Name: DIERR_NOTBUFFERED
VFW_E_NO_ACCEPTABLE_TYPES
Description: Attempted to read buffered device data from a device that is not buffered. & There is no common media type between these pins.
Severity code: Failed
Facility Code: FACILITY_ITF (4)
Error Code: 0x0207 (519)
My mediatype is declared as :
const AMOVIESETUP_MEDIATYPE sudOpPinTypes =
{
&MEDIATYPE_Stream,
&MEDIASUBTYPE_NULL
};
I debugged the code and I found that somewhere in the
HRESULT CBasePin::AgreeMediaType(IPin *pReceivePin, const CMediaType *pmt) inside the amfilter.cpp is gettings first the AVI Splitter's MediaType list with the folowing code :
hr = pReceivePin->EnumMediaTypes(&pEnumMediaTypes);
Ok with that. Then it tries all mediatypes inside the method
HRESULT CBasePin::TryMediaTypes(IPin *pReceivePin, __in_opt const CMediaType *pmt, IEnumMediaTypes *pEnum)
by retriving them one by one with the following statement
hr = pEnum->Next(1, (AM_MEDIA_TYPE**)&pMediaType,&ulMediaCount);
At this point, the hr result returns S_FALSE and the pMediaType is undefined. The error code is
0x8004022f error code
VFW_E_INVALID_FILE_FORMAT
So the AVISplitter does not purpose any right ?
Now the code beggins to scan my own source filter mediatype list.
Despite the fact that I declared 2 or 3 different mediatypes it returns only one and it fails at
hr = AttemptConnection(pReceivePin, pMediaType); and specifically at
hr = pReceivePin->ReceiveConnection((IPin *)this, pmt);
What am I doing wrong ?
I suspect my MediaType declaration, but i dont see anything wrong. Below I attach the filter's template declarations with only one mediatype.
const WCHAR szAsyncFile[] = L"Async Source (File)";
const WCHAR szAsyncHttp[] = L"Async Source (Http)";
const AMOVIESETUP_MEDIATYPE sudOpPinTypes =
{
&MEDIATYPE_Stream,
&MEDIASUBTYPE_NULL
};
const AMOVIESETUP_PIN sudOpPin =
{
L"Output", FALSE, TRUE, FALSE, FALSE, &CLSID_NULL, L"Input", 1, &sudOpPinTypes
};
const AMOVIESETUP_FILTER sudAsyncFile =
{
&CLSID_PIAsyncFile, szAsyncFile, MERIT_UNLIKELY, 1, &sudOpPin };
const AMOVIESETUP_FILTER sudAsyncHttp =
{
&CLSID_PIAsyncHttp, szAsyncHttp, MERIT_UNLIKELY, 1, &sudOpPin };
CFactoryTemplate g_Templates[] =
{
{
szAsyncFile,
&CLSID_PIAsyncFile,
CAsyncFilter::CreateInstance,
NULL,
&sudAsyncFile
},
{
szAsyncHttp,
&CLSID_PIAsyncHttp,
CAsyncFilterHttp::CreateInstance,
NULL,
&sudAsyncHttp
}
};
int g_cTemplates = sizeof(g_Templates) / sizeof(CFactoryTemplate);
sdancer75
modified 21-Jun-13 8:45am.
|
|
|
|
|