Click here to Skip to main content
15,885,216 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: trying to solve exam question and getting unreasonable length code, can it be shorter? Pin
Philippe Mori1-Jul-11 12:35
Philippe Mori1-Jul-11 12:35 
AnswerRe: trying to solve exam question and getting unreasonable length code, can it be shorter? Pin
Philippe Mori1-Jul-11 12:20
Philippe Mori1-Jul-11 12:20 
AnswerRe: trying to solve exam question and getting unreasonable length code, can it be shorter? [modified] Pin
Alain Rist3-Jul-11 23:54
Alain Rist3-Jul-11 23:54 
GeneralRe: trying to solve exam question and getting unreasonable length code, can it be shorter? Pin
Stefan_Lang4-Jul-11 0:37
Stefan_Lang4-Jul-11 0:37 
GeneralRe: trying to solve exam question and getting unreasonable length code, can it be shorter? Pin
Alain Rist4-Jul-11 5:01
Alain Rist4-Jul-11 5:01 
QuestionC++ DLL for Metatrader 4 Platform Pin
babelproofreader1-Jul-11 8:24
babelproofreader1-Jul-11 8:24 
AnswerRe: C++ DLL for Metatrader 4 Platform Pin
Philippe Mori1-Jul-11 9:07
Philippe Mori1-Jul-11 9:07 
QuestionIOCP, Completion Key and Overlapped Pin
csrss1-Jul-11 7:39
csrss1-Jul-11 7:39 
I am simply trying to figure this out.
So, we have this API, GetQueuedCompletionStatus, which among others params, returning completion key which is "per device" and overlapped struct, which is "per call". Or something like this. In every example on the net and in platform SKD's samples, The Overlapped structure gets extended like this:

struct MyOverlapped
{
    OVERLAPPED Overlp;
    // my data goes below
};


And then it is used with
GetQueuedCompletionStatus
and other calls (WSAREcv, WSASend, etc). So the question is: why is that so? Why not use only completion key? From my observations, (debugging), data, which arrives with the completion key and data which gets extracted from casting MyOverlapped to received overlapped, is completely the same. For example, somewhere we do:

MyOverlapped * myOver = do_something_insert_something();
PostQueuedCompletionStatus(..., (ULONG_PTR)myOver, ...);


and inside worker thread, we have:

MyOverlapped * myOver = NULL;
GetQueuedCompletionStatus(..., (PULONG_PTR)&myOver, ...);


This code above returns the same what this code below:

MyOverlapped * myOver = do_something_insert_something();
PostQueuedCompletionStatus(..., (ULONG_PTR)0, &myOver->Overlp);


and then in worker thread:

MyOverlapped * myOver = NULL;
ULONG_PTR Data;
LPWSAOVERLAPPED Overlapped = NULL;
GetQueuedCompletionStatus(..., (PULONG_PTR)&Data, (LPOVERLAPPED *)&Overlapped);
myOver = (MyOverlapped *)Overlapped;


So why to extend Overlapped structure and whats the deal with these: "per device" and "per call"?
Thanks
011011010110000101100011011010000110100101101110
0110010101110011

AnswerRe: IOCP, Completion Key and Overlapped Pin
Mark Salsbery1-Jul-11 9:33
Mark Salsbery1-Jul-11 9:33 
GeneralRe: IOCP, Completion Key and Overlapped Pin
csrss1-Jul-11 10:48
csrss1-Jul-11 10:48 
GeneralRe: IOCP, Completion Key and Overlapped Pin
cmk1-Jul-11 11:37
cmk1-Jul-11 11:37 
GeneralRe: IOCP, Completion Key and Overlapped Pin
Mark Salsbery1-Jul-11 13:08
Mark Salsbery1-Jul-11 13:08 
GeneralRe: IOCP, Completion Key and Overlapped Pin
csrss1-Jul-11 19:51
csrss1-Jul-11 19:51 
GeneralRe: IOCP, Completion Key and Overlapped Pin
Mark Salsbery2-Jul-11 6:03
Mark Salsbery2-Jul-11 6:03 
AnswerRe: IOCP, Completion Key and Overlapped Pin
cmk1-Jul-11 10:46
cmk1-Jul-11 10:46 
GeneralRe: IOCP, Completion Key and Overlapped Pin
csrss1-Jul-11 11:13
csrss1-Jul-11 11:13 
QuestionEncryption/Decyption of String. Pin
Le@rner1-Jul-11 2:57
Le@rner1-Jul-11 2:57 
AnswerRe: Encryption/Decyption of String. Pin
Code-o-mat1-Jul-11 3:34
Code-o-mat1-Jul-11 3:34 
AnswerRe: Encryption/Decyption of String. Pin
cmk1-Jul-11 10:56
cmk1-Jul-11 10:56 
QuestionMaking an "SDI" MFC DLL Pin
Srikant Iyer1-Jul-11 1:46
Srikant Iyer1-Jul-11 1:46 
QuestionC++ Pin
Karthik931730-Jun-11 20:36
Karthik931730-Jun-11 20:36 
AnswerRe: C++ Pin
Richard MacCutchan30-Jun-11 22:35
mveRichard MacCutchan30-Jun-11 22:35 
AnswerRe: C++ Pin
Albert Holguin1-Jul-11 4:23
professionalAlbert Holguin1-Jul-11 4:23 
Questionfopen gives segmentation fault. Pin
krosty478230-Jun-11 18:44
krosty478230-Jun-11 18:44 
AnswerRe: fopen gives segmentation fault. Pin
enhzflep30-Jun-11 19:30
enhzflep30-Jun-11 19:30 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.