compile error when make a wchar_t conversion

This is a discussion on compile error when make a wchar_t conversion within the C Programming forums, part of the General Programming Boards category; Hello everyone, Here is the code, and if I change line from static wchar_t* p[1] = {PREFIX((wchar_t*)_TEXT("FOO"))}; to static wchar_t* ...

  1. #1
    Registered User
    Join Date
    May 2006
    Posts
    1,579

    compile error when make a wchar_t conversion

    Hello everyone,


    Here is the code, and if I change line from

    static wchar_t* p[1] = {PREFIX((wchar_t*)_TEXT("FOO"))};

    to

    static wchar_t* p[1] = {PREFIX(_TEXT("FOO"))};

    then code will be ok. Why?

    Code:
    #define UNICODE
    #define _UNICODE
    
    // include tchar.h
    
    #define PREFIX(x)	(wchar_t*)_TEXT("GOO_") x
    
    int main (int argc, char** argv)
    {
    	static wchar_t* p[1] = {PREFIX((wchar_t*)_TEXT("FOO"))};
    
    	return 0;
    }
    
    
    
    main.c(10) : error C2064: term does not evaluate to a function taking -22 arguments
    main.c(10) : error C2143: syntax error : missing ')' before 'type'
    main.c(10) : error C2059: syntax error : ')'

    thanks in advance,
    George

  2. #2
    Kernel hacker
    Join Date
    Jul 2007
    Location
    Farncombe, Surrey, England
    Posts
    15,677
    Why do you think it makes a difference? What happens in the macro?

    --
    Mats
    Compilers can produce warnings - make the compiler programmers happy: Use them!
    Please don't PM me for help - and no, I don't do help over instant messengers.

  3. #3
    and the hat of wrongness Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    32,590
    Why do you feel the need to cast everything if you're using the _TEXT macros?

    Perhaps if you also used the types declared in tchar.h in place of the rather too specific wchar_t you are using, then it would all work seamlessly.
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.
    I support http://www.ukip.org/ as the first necessary step to a free Europe.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Newbie Again
    By christianne in forum C Programming
    Replies: 14
    Last Post: 04-06-2006, 12:39 AM
  2. Win32 Common Controls in C++, how do i make and use them?
    By C+noob in forum Windows Programming
    Replies: 6
    Last Post: 01-09-2006, 10:53 AM
  3. Dikumud
    By maxorator in forum C++ Programming
    Replies: 1
    Last Post: 10-01-2005, 06:39 AM
  4. "Cannot make pipe"
    By crepincdotcom in forum C Programming
    Replies: 5
    Last Post: 08-16-2004, 12:43 PM
  5. Compile but cant print out answers
    By romeoz in forum C++ Programming
    Replies: 0
    Last Post: 08-02-2003, 11:29 AM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21