Юникодная версия С++ макро вроде имени исходного файла
???? ????? ????? ? 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*.