|
Hi You can use the following function
size_t strftime(
char *strDest,
size_t maxsize,
const char *format,
const struct tm *timeptr
);
size_t wcsftime(
wchar_t *strDest,
size_t maxsize,
const wchar_t *format,
const struct tm *timeptr
);
Wishes.
Anshuman Dandekar
Dare to Dream,
Care to Achieve.............
-- modified at 3:00 Tuesday 31st January, 2006
|
|
|
|
|
|
You are right. String object to time. Do you have any idea how it will be
Regards.
|
|
|
|
|
|
The following code may help u..
i have Created and Debugged demo for U.
Assumming that ur using MFC Application
CString strTime="06:45:18";
CString h,m,s;
SYSTEMTIME st;
GetSystemTime(&st);
h=strTime.Mid(0,2);
m=strTime.Mid(3,2);
s=strTime.Mid(6,2);
sscanf(h.GetBuffer(2),"%d",&st.wHour);
sscanf(m.GetBuffer(2),"%d",&st.wMinute);
sscanf(s.GetBuffer(2),"%d",&st.wSecond);
CTime t(st);
//h.Format("%d:%d:%d",t.GetHour(),t.GetMinute(),t.GetSecond());
//AfxMessageBox(h);
best luck.
Thanks and Regards
Laxman
FAILURE is the first step towards SUCCESS
|
|
|
|
|
Since your example uses MFC, why not simplify things by using COleDateTime::ParseDateTime() ? For example:
COleDateTime t;
t.ParseDateTime("06:45:18", VAR_TIMEVALUEONLY);
"The greatest good you can do for another is not just to share your riches but to reveal to him his own." - Benjamin Disraeli
|
|
|
|
|
One of my colleagues has got a MSVC++ Runtime error popup "R6025 - pure virtual function call". The popup is still there on his machine, so I would like to know if any crash info(address of instr that caused crash) can be obtained from this popup, may be by attaching the MSVC++ debugger or even WinDBG. Does anyone know how this situation can be debugged?
thanks!
|
|
|
|
|
What I'd do is the following:
- Attach WinDBG to it ("File->Attach to a Process...", select process then press "OK").
- In the command window (if not visible select "View->Command") type ".dump /ma dumpfile.dmp". Replace "dumpfile.dmp" with a filename of your choice.
This will create a dumpfile so you can look at the problem offline (by selecting "File->Open Crash Dump...").
Steve
|
|
|
|
|
WinDBG is not installed. Can we do something with MSVC++?
thanks!
|
|
|
|
|
Not to my knowledge. You can still attach to the process and debug it but can't create a dump file. For difficult to reproduce errors dump files are invaluable.
Steve
|
|
|
|
|
Can we attach WinDBG when MSVC++ has already got control over the crash? After attaching WinDBG, we have to click OK on the MSVC++ Runtime error popup, right? I just want to confirm because once we click OK, we loose the control.
thanks!
|
|
|
|
|
If you've already got a debugger attached you will not be able to attach another (you could try a "noninvasive" attach with WinDBG, this might work in this case). If you've already got a debugger attached just break execution and get a callstack (you may need to hunt for the right thread). Either way don't dismiss the dialog. The callstack, which will include the call that is displaying the dialog, contains the information you need. It will contain a call to "__purecall". The tricky bit will be figuring out how this happened - Probably calling a global function that calls a virtual function from the constructor of a partially constructed object.
Steve
|
|
|
|
|
Stephen Hewitt wrote: If you've already got a debugger attached you will not be able to attach another
We have not attached the MSVC++ debugger exlpicitly yet, I only thought the popup is from the debugger that automatically started, but looks like the popup is from the executable itself. Does this mean we can still attach WinDBG and take a dump?
thanks!
|
|
|
|
|
Yes. If the problem is hard to reproduce a would take a dump (no pun intended). That said a simple stack trace of the offenting thread will probably do. Look for a call to __purecall followed by a MessageBox call. The frames just before the __purecall should shine some light on your problem.
Steve
|
|
|
|
|
Thank you very much for the suggestions. The error has happened on a remote computer, and I have asked the remote user to send me the call stack. Let's see if I will be able to figure out the cause of the error.
thanks!
|
|
|
|
|
Attach a debugger and then look at the call stack. The last stack frame (not counting the stuff that is showing the message box) will be in the CRT function that uninitialized vtbl pointers point to. I forget the exact name, it's something like __purecall() . Just go up the stack and look for calls to virtual functions.
--Mike--
Visual C++ MVP
LINKS~! Ericahist | NEW!! PimpFish | CP SearchBar v3.0 | C++ Forum FAQ
|
|
|
|
|
- i wrote a win32 app to get text from a combo box , it worked fine except when i tried to test it with my google toolbar combobox it returned only the first char in each row !
does that have to do anything with unicode ? , how can i fix itto get the whole string not just the first character ?
|
|
|
|
|
If you're interpreting a unicode string as an ANSI string this is exactly what will happen - How exactly are you getting the text?
Steve
|
|
|
|
|
I am getting it like this :
SendMessage(clickedWindow , CB_GETLBTEXT , i , (LPARAM)buffer[i]);
where buffer is of type TCHAR
|
|
|
|
|
Try code like this (it should return the text in ANSI):
char buffer[256];<br />
SendMessageA(clickedWindow, CB_GETLBTEXT, i, reinterpret_cast<LPARAM>(buffer));
Or if you always want it in unicode:
WCHAR buffer[256];<br />
SendMessageW(clickedWindow, CB_GETLBTEXT, i, reinterpret_cast<LPARAM>(buffer));
In short, let the system do the conversion for you.
Steve
|
|
|
|
|
ahmed_barakat wrote: (LPARAM)buffer[i]);
...(LPARAM)buffer)
Jesus Lives Forever - Amen <marquee direction="up" height="40" scrolldelay="10" step=".5" scrollamount="1" style="background:#99ccff;border-bottom:thin solid 1px #6699cc">
--Owner drawn
--An eye for an eye makes the whole world blind.
--Jesus is Lord
|
|
|
|
|
At first I thought that but the [i] bit made me think that perhaps buffer is an array of pointers to buffers.
Steve
|
|
|
|
|
Almost certainly a unicode string, seeing as the second byte would be a 0 ( which would be regarded as a null terminator ). Use USES_CONVERSION and W2A to convert it.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Hi,
I need to find out, programmatically, what is the name of the machine's OS Administrators group.
I.e. Administrators for English OS, Administrateurs for French OS and etc.
How can I achieve that ?
Thanks!
--
Thank you!
|
|
|
|
|
Call CreateWellKnownSid() to make a SID for the admin group, then call LookupAccountSid() to get the name. (CreateWellKnownSid() is on XP only)
--Mike--
Visual C++ MVP
LINKS~! Ericahist | NEW!! PimpFish | CP SearchBar v3.0 | C++ Forum FAQ
|
|
|
|