L in C

Discussion in 'C Programming' started by |-|e|_|_ B0Ý, Aug 5, 2008.

  1. 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? 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.
    |-|e|_|_ B0Ý, Aug 5, 2008
    #1
    1. Advertising

  2. |-|e|_|_ B0Ý

    santosh Guest

    |-|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?


    It isn't defined by Standard C.

    > Is there any other `prefix/type caster/whatever`(i don't
    > know what it is called) in C?


    Prefix for what?

    There are a number of conversion specifiers for the Standard I/O
    functions, but if you are using a non-Standard function then you will
    have to ask in a group for your system.

    > 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.


    C doesn't even have the concept of threads.

    You want <news:comp.os.ms-windows.programmer.win32>.
    santosh, Aug 5, 2008
    #2
    1. Advertising

  3. |-|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
    Stephen Sprunk, Aug 5, 2008
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.

Share This Page