In both cases, we are receiving only one buffer. (WSABUF allows to specify more then 1 recv buffer).
And now, in case of recv, i can do something like this:
1. i got my recv buffer size, lets say 1024 bytes and doing recv.
2. Ok, i got some data and its length is 512 bytes and it has been copied to my recv buffer. But i know, that i should receive 1024 bytes of data.
3. So i am going to recv data in a loop until all 1024 bytes arrived.
4. Ok, i got some data again and it seems like it is next 512 bytes, but this time i am calling recv like this:
int recved = ::recv(sock, Buffer + already_received_number_of_bytes, size, 0);
So the rest of received data is appended to my recv buffer and in the end my recv buffer contains all data.
The question is: how can i do this with WSARecv ?
I am invoking the same dialog from 2 places (At the first place the call is using domodal(), the second place the call is using create and showwindow)
I want to disable a few button controls when I call the dialog using domodal() but the same buttons should be enabled during the next modeless call.
kindly suggest me how to enable/disable a button when opening the dialog using domodal()
You can use CWnd::EnableWindow() to enable/disable buttons... you should however, do this from within the class (i.e. an external class should probably not be controlling buttons on a different class directly). So you can maybe set a control variable in when you create the dialog class so that you can handle the enabling/disabling OnInitDialog() (the proper place to initialize GUI components).
It's impossible to give an answer to such questions in a technical forum. You need to analyse your requirements and figure out how you wish to represent the data in your charts. The chances are that you will be drawing lines and blocks so the GDI+[^] classes will probably be of some use.
I want to develop an application with MFC,which has similar functions to Gantt
I am assuming you have 3-4 yrs of development experience in MFC. if you want to develop your own charting control, you can go through GDi and GDI+ classes, which provide you low level access to window graphics.
Otherwise google is always your good friends for developer!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
In my program I have a MainThread and more WorkerThread. Suppose that at certain event (which I'll manage) the MainTh must send a string (char ) to all WorkerTh, which will then process the request and send a response to MainTh.
What methods provided by windows are more suitable to handle a similar thing?
I'm using multiple document types (e.g. *.txt, *.xml) in a SDI type application, with two CSingleDocTemplate objects that handles two different file formats. The view class is the same for both document templates. However, when opening a file of the type that isn't currently open, MFC creates a new top level frame instead of disposing of the old view. This happens in CSingleDocTemplate::OpenDocumentFile, but I'm not that happy about overriding stuff about the view/doc logic of MFC.
What I want is to keep the same frame for both document types, but from what I can read in the MFC source, the framework isn't really designed for that behaviour.
i have an MFC c++ application build with /clr option and have integrated crash reporting feature.
the crash dump it generates does not show line numbers when i debug the dump using windbg.
(i found that applications build with clr does not show line numbers)
it shows the function name where it crashed but not the exact line number. for eg
03434456 02312434 CExApp::OnOpenFile() + 0x30c
whats 0x30c ? is it an offset in the function?
Is there any way to calculate the line number by using 0x30c ?
int tr = 0;
int rows = 256;
int ms = 3;
tr += (rows & (1 << (ms - 1))) << (ms - 1);
tr = rows & (~(1 << ms));
in above program have used only 3 integers...so can we consider that this program's memory requirement will be 3 integers (3*4 bytes).
or the compiler will generate some intermediate integers for storing values of expressions like
(~(1 << ms)) etc... and thus the memory requirements of this program will be more than 3 integers.
i know it all depends upon how the compiler generates the code.
but wanted to know the relation (w.r.t memory) between the variables declared and the intermediate expressions.
Or you may please direct me to appropriate resources (forums, links)for this..
If you are using Visual Studio then you have the opportunity to see the disassembly listing (for instance via the debugger or the /FA compiler option). Other compilers may provide you this facility as well.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
It depends on the compiler, and the switch settings you apply.
A smart compiler may toss it all out as all calculations ultimately generate a value for tr which is then not used at all.
And if you were to add a function call (say print(tr);) which makes the calculations necessary, the compiler could still discover that the tr value is a constant that can be evaluated right away at compile-time, hence tossing the other variables.
The quality and detail of your question reflects on the effectiveness of the help you are likely to get. Please use <PRE> tags for code snippets, they improve readability. CP Vanity has been updated to V2.4