|
Some of the code in question:
std::list<SMyFrameData*> pFrameData;
There's no capturing of pointers here, pFrameData is a std::list.
Only deleting a list node invalidates an iterator to it. Having an iterator to the first node then adding to the head is not a problem, you just end up with an iterator to the second item in the list (the same is true for pointers to list items).
Steve
modified 13-Nov-12 12:10pm.
|
|
|
|
|
yes, I find that I copy wrong, now I changed it.
|
|
|
|
|
Stephen Hewitt wrote: Some of the code in question:
std::list<SMyFrameData*> pFrameData;
Sorry, where does that come in OP's question?
Text changed for test purposes.
One of these days I'm going to think of a really clever signature.
modified 14-Nov-12 8:24am.
|
|
|
|
|
The code you quoted contains that variable. You seen to be assuming it's a pointer.
Steve
|
|
|
|
|
Since the definition of that variable is not shown I assumed nothing.
[edit]
Testing the edit feature.
[/edit]
One of these days I'm going to think of a really clever signature.
modified 14-Nov-12 10:36am.
|
|
|
|
|
The definition is quoted in my post.
Steve
|
|
|
|
|
But not in OP's original, which is why I added a comment to him/her suggesting that there was something else that we are not being told.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
It was in the original but isn't now as he edited his post after reading mine.
Steve
|
|
|
|
|
The original never contained that statement and has not been modified.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
|
Well I don't think he did. If a post is edited after being created, then it gets the tag [modified] added to the title, and a date put in at the bottom, as you can see in my modified post[^], or indeed, in your first reply to me.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
I am going to edit this post.
First edit.
Second edit.
Third edit.
This post has been edited five times. There was no modified additions after the first edit, but it did appear after the second. I'm guessing there's a window within which they don't appear. As to why they don't appear on the OP's post I'm not sure. I'm not making this stuff up, the post was edited: My post contains text copied from it using the clipboard and I provided a link from the poster where he says he did. I'm not sure what more I can do to convince you.
Steve
modified 14-Nov-12 8:48am.
|
|
|
|
|
OK, I'm convinced, I just edited a recent post and the changes did not show, looks like a bug for Chris's list.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Richard MacCutchan wrote: Well I don't think he did. If a post is edited after being created, then it gets the tag [modified] added to the title, and a date put in at the bottom, as you can see in my modified post[^], or indeed, in your first reply to me.
This does not always happen, Richard. I would say 15-20% of the time, old posts that I modify show no sign of change.
"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
|
|
|
|
|
Interesting, I have never noticed that. In my experience modified posts always show the changes.
Let's see if this edit shows up.
[edit sequence="2"]
Well that one did not show the change; maybe it's a timing issue.
[/edit]
[edit sequence="3"]
Well first and second did not show the change; maybe it's a timing issue.
[/edit]
[edit sequence="4"]
Well first, second and third did not show the change; maybe it's a timing issue.
[/edit]
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
But I use the CCriticalSection to lock the m_FrameList, when I am getting the front data from m_FrameList, no others change the m_FrameList. So the pushing an element will be done after pop data.
|
|
|
|
|
I suspect there is some code in your program that you have not shown us.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
yu-jian wrote: pFrameData = m_FrameList.front(); What is pFrameData ?
What does the code shown below this have to do with the error?
yu-jian wrote: But now there is a error happen "erators and references can become invalid." in code, pFrameData = m_FrameList.front(); This is a compiler error?
"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
|
|
|
|
|
Can you show some more code? On what line does the error occur?
Steve
|
|
|
|
|
I called code as followed
IDispatch* pDisp = NULL;
IPDDomNode* pDocNode = NULL;
AccessibleObjectFromWindow(hPDF, OBJID_NATIVEOM, IID_IDispatch, (void**)&pDisp );
hr = pDisp->QueryInterface(IID_IPDDomNode, (void**)&pDocNode);
the problem is pDocNode stands for the current visible page or the entire document?
when take a test, sometimes(when the pdf file is huge)stands for the current visible page, otherwise it stands for the entire document.
I am puzzled on this.
I need your help man.
|
|
|
|
|
Here is my source code for locking my computer screen (Generally we do by pressing win+L)But Here in the below code what i am trying to do is , when user run the exe created by this application 1st the screen will be invisible (which is not happening in case of win+L) then next time when the user interact with the system it will show the user that the screen is locked .
<pre lang="c++"> #include "stdafx.h"
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// Turn off monitor
Sleep(500); // Eliminate user's interaction for 500 ms
ret =SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM) 2);
}
LockWorkStation();
return 0;
}
|
|
|
|
|
I have just tested this sequence of commands on Windows 7 and it works correctly. Is there something else in your code that you have not shown?
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
no .. i have written everything .. i am using win 7 enterprise edition ..
|
|
|
|
|
I just ran the code you provided (after correcting the errors) and it again works fine in my Windows 7 Home Edition.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
May be its working in Home edition but my question is for enterprise edition .
|
|
|
|