|
Hello everyone,
I want to study the constructor for string to see whether for an empty string it has some default storage allocated or not (for self technical interest only), and string is defined based on basic_string<char>, so I begin to study basic_string.
But in file string, there is no constructor for basic_string. Anything wrong? Where is it?
I am using Visual Studio 2008.
thanks in advance,
George
|
|
|
|
|
Try to find the Help for Cstring class in MSDN
|
|
|
|
|
Hi Jeet_IT_in,
I am confused. CString is class for MFC, but string is STL class. Are they related? Thanks.
regards,
George
|
|
|
|
|
There is the constructor of std::basic_string in VC++2005.
File xstring , line 583.
__CLR_OR_THIS_CALL basic_string(has_debug_it _Hdi = _Has_debug_it(true))
: _MyBase()
{
}
Maxwell Chen
|
|
|
|
|
Thanks Maxwell,
I have found 16 bytes will be allocated as default. Right?
regards,
George
|
|
|
|
|
I think along with this STL stuff, learn something on debugging. Place the breakpoint on the statement, then step in, step in, you can explore the complete available code.
|
|
|
|
|
Thanks Rajkumar -- good method!
I have found 16 bytes will be allocated as default. Right?
regards,
George
|
|
|
|
|
Hi,
In my application i am opening a text file in one window.
In the middle of some operation / implementation i need to close this window and i need to open the same file again. When i tried to close this file (i tried with the function CloseAllDocuments()) it is deleting the contents of some structure variables related to my application. Is there any way to close this file without deleting the contents of these structures variables ???
Regards,
Sanjeeva Kumar.
|
|
|
|
|
Explain in detail.. and post small code if possible
|
|
|
|
|
plz ,
can u put the code ?
|
|
|
|
|
Jeet_IT_in wrote: plz ,
can u put the code ?
plz cn u stop txt SPKing? plzzzzz.
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
Sanjeeva Kumar K wrote: When i tried to close this file (i tried with the function CloseAllDocuments()) it is deleting the contents of some structure variables related to my application. Is there any way to close this file without deleting the contents of these structures variables ???
Sounds to me like you answered your own question. If your document class is cleaning itself up, that would seem a fitting place to start looking. Have you implemented DeleteContents() ? What about OnOpenDocument() ?
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
I Send Message With SMTP .
How Can I Received the Message With SMTP( Get Mail )?
thanks
Email : msbzag@gmail.com
thank's
|
|
|
|
|
SMTP for sending and POP for reading mails.
|
|
|
|
|
MmTurner wrote: How Can I Received the Message With SMTP( Get Mail )?
You can't.
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
In my Win32 application, I register several window classes, each class have a different message procedure. Then, I create several windows.
I call SetTimer(m_hWnd, SPECIFIC_MESSAGE_CONSANT,1000, NULL);
As far as I know:
This should send a WM_TIMER with wParam = SPECIFIC_MESSAGE_CONSANT, with one second time delay.
To the message procedure of the window class that m_hWnd (HWND) was created from.
where SPECIFIC_MESSAGE_CONSANT = 11761
In my int APIENTRY _tWinMain()
I do:
MSG msg;
ZeroMemory( &msg, sizeof(msg) );
while( msg.message!=WM_QUIT )
{
if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
else
{
}
}
WM_TIMER never arrives to the place marked above.
I tried PostMessage(m_hWnd,WM_TIMER,SPECIFIC_MESSAGE_CONSANT,NULL) ->
got exactly where expected.
Still, I must have the time delay.
modified on Tuesday, February 26, 2008 6:20 AM
|
|
|
|
|
Hanan888 wrote: if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )
This can lead to busy loop, as peekmessage returns without waiting for messages. This may not be the problem. This can use significant processor time.
Hanan888 wrote: Then, I create several windows.
Are you creating the windows in the same thread as the message loop?
|
|
|
|
|
Thank you.
Rajkumar R wrote: This can lead to busy loop, as peekmessage returns without waiting for messages. This may not be the problem. This can use significant processor time.
I was sure that my message peeking loop was pretty standard. I can't see the problem you indicated.
Please describe it if you have the time.
Rajkumar R wrote: Are you creating the windows in the same thread as the message loop?
I dont do any special threading now, working pretty standard so I guess I am creating the windows in the same thread.
please note: all other messages (automatic-win32-messages) arrive where I expect them.
|
|
|
|
|
Hanan888 wrote: I was sure that my message peeking loop was pretty standard. I can't see the problem you indicated.
Please describe it if you have the time.
"pretty standard" please give the standard committee link for this.
typically, in win32 samples, i seen message loop with GetMessage() in winmain like,
while( (bRet = GetMessage( &msg, NULL, 0, 0 )) != 0)
{
if (bRet == -1)
{
// handle the error and possibly exit
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
PeekMessage is used, if you are doing some lengthy operation and want to examine the message queue in between.
Hanan888 wrote: Please describe it if you have the time.
just replace your message loop with GetMessage() and compare the processor usage in Task Manager.
In my HT machine, i am getting almost 0% using GetMessage(), and using your peekmessage() more than 50%, iam sure in single processor machine it will be more than 90%.
|
|
|
|
|
Thank you for the info.
My way was standard in DirectX samples.
if PeekMessage() returns false (no messages in queue)
I do graphic rendering.
My recent check showed that if I do PostMessage() (instead of setTimer() )I get exactly where I wanted. Still, I must use timer to acheive the delay.
|
|
|
|
|
Hanan888 wrote: I do graphic rendering.
That's it you are performing lengthy operation.
Hanan888 wrote: Still, I must use timer to acheive the delay.
in your rendering loop, you can find the elapsed time since last time message posted and find out the delay. And if you find that delay you actually don't need to post message, you can call the handler for WM_TIMER directly in the rendering loop.
but still i am not convinced why SetTimer() is not working.
|
|
|
|
|
Thanks again.
Rajkumar R wrote: in your rendering loop, you can find the elapsed time since last time message posted and find out the delay. And if you find that delay you actually don't need to post message, you can call the handler for WM_TIMER directly in the rendering loop.
Yes, in rendering I check the time now and calculate the delay or something like that (some other from my team implemented these stuff).
But what I need is triggering some GUI and rendering and business-logic events, orchestrating them with time delays.
And it all worked before something got funky.
All messages (PAINT, LBUTTONDOWN,...) go exactly where I need them.
PostMessage(m_hWnd,WM_TIMER,SPECIFIC_CONST,NULL); get where I expect it to go.
only SetTimer(m_hWnd,SPECIFIC_CONST,1000,NULL)
never get to the case WM_TIMER:
Rajkumar R wrote: but still i am convinced why SetTimer() is not working.
Do you mean you're still not convinced ?
|
|
|
|
|
if your task is to put a SPECIFIC_MSG into the message queue of a window then use PostMessage API instead of creating a timer with 0 time interval
|
|
|
|
|
thank You.
I had some experience with PostMessage() and my problem was, that the message "passed-through" all other messages, and got ahead of them in the queue or something.
Anyhow, my typical usage is to set some time interval.
|
|
|
|
|
You dont SEND the Timer message, you INSTALL a timer!!! You got to call KillTimer somewhere.
Try a delay in the Timer.
Greetings from Germany
|
|
|
|