L in C

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • =?ISO-8859-1?B?fC18ZXxffF8gQjDd?=

    L in C

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

    #2
    Re: L in C

    |-|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.m s-windows.program mer.win32>.

    Comment

    • Richard Heathfield

      #3
      Re: L in C

      |-|e|_|_ B0Ý said:
      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);
      I'd be very surprised if that were true. Almost certainly, for example, the
      third of those lines is mistyped.
      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.
      Whether Windows API calls take wide strings or normal strings is, I
      believe, dependent on a compiler setting. See my last paragraph, though.
      I added L unknowingly. Can you tell me what is
      this L for?
      It allows you to specify a string literal that uses "wide characters" -
      wchar_t characters - rather than ordinary chars. This allows you to use,
      for example, Unicode characters in your program.
      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?
      This is really a question about Windows rather than about C itself, so I
      suggest you take it up in comp.os.ms-windows.program mer.win32 - which is
      an excellent newsgroup for Windows questions, really first class.

      --
      Richard Heathfield <http://www.cpax.org.uk >
      Email: -http://www. +rjh@
      Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
      "Usenet is a strange place" - dmr 29 July 1999

      Comment

      • Martin Ambuhl

        #4
        Re: L in C

        |-|e|_|_ B0Ý wrote:
        I am a novice C learner. And I don't have much advanced tutorial/
        documentations on it too.
        You don't need "advanced tutorial/documentations" . A simple elementary
        C text and the FAQ for this news group should do the trick, except...
        yesterday i tried to write a windows console
        timer program in C and i struck with some ...very unclear solutions....
        (should say).
        suggests strongly that you are interested in Windows programming, using
        a language that appears C-like but probably isn't.
        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);
        LPWSTR means nothing in C. Unless it is a type pointer-to-char, the
        assignment of the pointer to the anonymous string "my Title" is absurd.

        SetWindowsTitle () means nothing in C.

        It appears that you are using some implementation-specific types and
        implementation-specific functions. You need to ask in a newsgroup for
        your implementation. There is a good chance that it's one of the many
        witn "windows", "microsoft" , or "MSC" in their names.

        Comment

        • Stephen Sprunk

          #5
          Re: L in C

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

          Comment

          Working...