Compartir a través de


Юникодная версия С++ макро вроде имени исходного файла

???? ????? ????? ?  C++: __FILE__, __FUNCTION__,... ??????, ??????, ???? ????? - ????????????, ? ??? ?????? ???? ????? ??????? ??????-?? ????? ?? ??????, ???? ? ??????????? ???????????? ????, ?????? ?????????? ??? ??? ???????? ?????. ??? ? ??????????, ??? ????-?? ????? ???????????:

#include <Windows.h>
#include <stdio.h>

#define WIDEN2(x) L ## x
#define WIDEN(x) WIDEN2(x)
#define __WFILE__ WIDEN(__FILE__)
#define __WFUNCTION__ WIDEN(__FUNCTION__)

int wmain(int argc, WCHAR* argv[])
{
    wprintf(L"File is " __WFILE__ L"\n");
    wprintf(L"Function is " __WFUNCTION__ L"\n");
    return 0;
}

Comments

  • Anonymous
    January 01, 2003
    Да, дожно работать. Но у меня-то проблема немного другая была - я его использую как параметр в вызове, который только юникодные строки берет.

  • Anonymous
    January 01, 2003
    Раз вы пишете про C++, посмотрите в режиме дебаг в VC2005 на этот кусок кода. for (int i=0; i<10; i++) {} int i=45; следить надо за переменным i в auto, locals, watch и просто наведением мыши на переменную

  • Anonymous
    April 03, 2007
    Хм... А я решил проблему другим путем: wsprintf понимает параметр %S - подставляет char*.