|-|e|_|_ B0 wrote:
I am a novice C learner. And I don't have much advanced tutorial/
documentations on it too. yesterday i tried to write a windows console
timer program in C and i struck with some ...very unclear solutions....
(should say). First i was trying to write something on the title bar
of the consol window using following code:
LPWSTR sWTitle;
sWTitle = "my Title";
SetWindowsTitle(sWTitle);
Above code gave me some unknown characters in my console title bar.
Then I changed sWrite value with {L"my Title";} which performed
excatly as i needed. I added L unknowingly. Can you tell me what is
this L for? Is there any other `prefix/type caster/whatever`(i don't
know what it is called) in C?
You don't tell us what a LPWSTR* is, so anything here is a guess.
However, assuming they're using Microsoft's usual naming convention:
STR = string
W = wide
LP = long pointer
Most likely, LPWSTR* is just a fancy name for wchar_t*.
"my Title" is a narrow string. L"my Title" is a wide string. LPWSTR*
implies you want a pointer to the latter. If you assign a pointer to a
narrow string to a function expecting a pointer to a wide string, it's
not surprising at all that you strange results.
<OT>
Most Windows API functions are actually implemented as a pair of
functions, with A (ASCII) and U (Unicode) suffixes, and the unsuffixed
function name is actually an alias to one of them, which varies
depending on compiler options. If you want to pass a narrow string to
SetWindowTitle() when compiling in Unicode mode, you could probably use
SetWindowTitleA() -- but I don't know if the convention applies to that
particular function.
Typical Windows implementations also have a macro _T() which prefixes
its argument with L if compiling in Unicode mode. This is so you can
write SetWindowTitle(_T("my Title)); and it'd work in either mode.
</OT>
And one more... I used threads in my program and i want it to be paused
on some keyboard events without interrupting another running threads.
Is there a way to pause running thread in C? Thanking you all for the
reply in advance.
This is so far off-topic I can't even guess. You need to ask these
sorts of questions in a Windows-specific newsgroup.
S