Как мне преобразовать объявленный в Н-нике #define "String" к константной юникодной строке. При этом проект компилится ни как юникодный и не ипользуя различные функции преобразования строк.
Например в Н написано
#define "String"
мне нужно чтобы откомпилилось как
const wchar_t = L"String";
Здравствуйте worm, вы писали:
W>Привет!!!
W>Как мне преобразовать объявленный в Н-нике #define "String" к константной юникодной строке. При этом проект компилится ни как юникодный и не ипользуя различные функции преобразования строк.
W>Например в Н написано W>#define "String" W>мне нужно чтобы откомпилилось как W>const wchar_t = L"String";
а где сама константа ? ...
W>Это вообще возможно??
"преобразовать" ... "не ипользуя различные функции преобразования строк" ... ы ... видимо нет ...
Здравствуйте VladD2, вы писали:
VD>Здравствуйте VladD2, вы писали:
VD>>Это же с чего же нет? А, чем это плохо:
VD>>#define str "String" VD>>const wchar_t gc_wstr = Lstr;
VD>Пордон пока посылал сам понял чем. :)
VD>Тогда действительно (похоже) ни как.
Если кому-то еще интересно, я нашел как это сделать. Но, с использованием макроса :)
W>Если кому-то еще интересно, я нашел как это сделать. Но, с использованием макроса :)
W>#define ToWHAR(string) W> L#string; W>#define str "String"
W>const wchar_t gc_wstr[] = ToWHAR(str)
Кажись я это в VC пробывал. И вроде как не прокатывало, но может и ошибся где...
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте worm, вы писали:
W>Как мне преобразовать объявленный в Н-нике #define "String" к константной юникодной строке. При этом проект компилится ни как юникодный и не ипользуя различные функции преобразования строк.
W>Например в Н написано W>#define "String" W>мне нужно чтобы откомпилилось как W>const wchar_t = L"String";
W>Это вообще возможно??
Почитал вашу переписку и решил вмешаться... Извини, если ты решил использовать такой макрос, то почему тебе не подходит макрос _TEXT() из h-файла tchar.h???
Вообще по этому поводу можно почитать одну из первых глав в книге Рихтера.
Заранее извиняюсь, если я не так понял твой вопрос ;)
----
With best regards, Kot Burov aka W@ndERR ®
UIN: 108043419
--------
Здравствуйте Constantin Burov, вы писали:
CB>Здравствуйте worm, вы писали:
W>>Как мне преобразовать объявленный в Н-нике #define "String" к константной юникодной строке. При этом проект компилится ни как юникодный и не ипользуя различные функции преобразования строк.
W>>Например в Н написано W>>#define "String" W>>мне нужно чтобы откомпилилось как W>>const wchar_t = L"String";
W>>Это вообще возможно??
CB>Почитал вашу переписку и решил вмешаться... Извини, если ты решил использовать такой макрос, то почему тебе не подходит макрос _TEXT() из h-файла tchar.h???
"... При этом проект компилится ни как юникодный ..."
CB>Вообще по этому поводу можно почитать одну из первых глав в книге Рихтера. CB>Заранее извиняюсь, если я не так понял твой вопрос ;)
Здравствуйте worm, вы писали:
W>Привет!!!
W>Как мне преобразовать объявленный в Н-нике #define "String" к константной юникодной строке. При этом проект компилится ни как юникодный и не ипользуя различные функции преобразования строк.
W>Например в Н написано W>#define "String" W>мне нужно чтобы откомпилилось как W>const wchar_t = L"String";
W>Это вообще возможно??
Здравствуйте VladD2, вы писали:
W>>Если кому-то еще интересно, я нашел как это сделать. Но, с использованием макроса :)
W>>#define ToWHAR(string) W>> L#string; W>>#define str "String"
W>>const wchar_t gc_wstr[] = ToWHAR(str)
VD>Кажись я это в VC пробывал. И вроде как не прокатывало, но может и ошибся где...
Этот макрос 'ToWHAR' обладает следующими свойствами/ограничениями:
1) Передаваемая в качестве аргумента строка _не_ должна быть заключена в кавычки.
2) Если в качестве аргумента использован макрос, то он расширен _не_ будет.
Например
#define STR "string"
const char wchar_t* str = ToWHAR(STR);
будет заменено на
const char wchar_t* str = L"STR";
а не на
const char wchar_t* str = L"string";
Макрос, соответствующий условиям задачи, должен быть "двухуровневым" и должен использовать ##, а не #. См. мое сообщение от 21:51.