Roman | |||
|
Какая локаль не знаю. Получается 4060cb |
|
Юникод не убрал. Убери префик L у текста. Локаль определяется виндой в региональных стандартах. Язык программ, не поддерживающих юникод должен быть русским. |
Roman | |||||
|
Локаль русская стоит. L убрал - всё тоже самое. ("¦ЁштхЄ тёхь!") |
|
Не знаю, что сказать. Компилятора Borland Developer Studio 2006 под рукой нет, проверить не могу. |
Nag_X | |
|
#include <iostream> int main() { std::wcout.imbue(std::locale(".866")); std::wcout << L"Привет всем!" << std::endl; } При попытке компиляции с выводом в консоль(Builder 5), винда выдала сообщение о недостатке виртуальной памяти. |
|
Народ, могу посоветовать только сказать большое спасибо фирме Borland за отличные компиляторы. Приведеный мною код абсолютно корректен и соответствует стандарту. |
Roman | |||
|
Ну такого я никак не ожидал. Но меня больше беспокоит то, что при попытке установить Интербейс я увидел синий экран (при каждой попытке). Прямо в начале установки... Называется скачал новый Интербейс... |
|
Сегодня на работе вышел злободневный спор на тему выбора обертки для указателей, возвращаемых фабричными функциями. В результате сошлись только в одном - "сырые" указатели возвращать нельзя - чревато утечкой ресурсов. Что вполне естественно. Что касается оберток, одни убеждали использовать std::auto_ptr, уповая на ее наличие в стандартной библиотеке, быстроту работы и ключевую особенность копирования использующую "move semantics" называемую также "передачей владения". Другие предлагали использовать boost::shared_ptr или std::tr1::shared_ptr. Их аргументами являлись универсализм, возможность безболезненного "разделения" указателя несколькими сущностями одновременно, и поддержку собственной функции освобождения ресурса. У обеих оберток есть свои неисправимые преимущества и несомненные недостатки :) Что по этому вопросу скажет народ? |
|
Народ, как всегда, безмолствует... Будто сам с собой на форуме разговариваю. Так и тронуться недолго. Были отличные бойцы: JeyLo, tetro, AngeLR. Только пропали... |
|
Народ еле думает. Жара... :) И самолеты крыльями машут... Мы STL не знаем, у нас свойная кросспроджект шаред либрари есть. В ней есть что-то типа auto_ptr. На чистые указатели с операциями выделения или освобождения памяти запрет. |
tetro | |
|
Гриша, спасибо за комплемент! Если честно, то по хорошему у меня по программированию только докторская степень (без предыдущих ). Я - алгоритмист (причем более в непрерывных вещах чем в дискретных), т.е. да имплементирую много и активно, но обычно моя цель это эффективность с наименьшими потерями а не всяческие ОО красоты Т.е. за перво-принципами это ко мне, а с какой стороны открывают стандарт - это вопрос отдельный... А разговариваю сам с собой я столько лет сколько себя помню |
|
Сегодня наконец нашел в электронном виде (DjVu) книжку "Дизайн и эволюция C++" Бьярна Страуструпа на русском языке Её бумажная реинкарнация в моей библиотеке изрядно истрепалась и представляет собой просто жалкое зрелище :) PS кому интересно, лежит у меня на FTP здесь |
niktuba | |
|
Народ, я тут попытался найти в Visual C++ 6.0 функцию, которая позволяет выводить на экран текст в вертикальном направлении - надо к оси Y подпись присобачить. Среди извратов с API TextOut, TabbedTextOut, DrawText, DrawTextEx, к удивлению своему, не обнаружил ни одного, позволяющего менять направление текста. Есть ли простые, не использующие Microsoft Foundation Classes, коды, показывающие, как проще всего напечатать вертикальный текст? |
|
Не там ищешь. Вывести вертикальный текст способна любая из приведенных тобой функций. Они выводят текст определенным шрифтом. Все что тебе надо - создать его вертикальным. Обрати внимание на четвертый параметр (orientation) функции CreateFont. Он позволяет задавать угол отклонения базовой линии выводимых символом от оси абсцисс. Это сообщение отредактировал GregZ - 13-07-2006 - 10:09 |
niktuba | |||
|
Ну как же не там? Тута - на sexnarode Если без шуток, то огромное спасибо. Я бы, может, и сам нашел, но потратив много времени, которого у меня сейчас нет совсем. В Португалии конец июля - как конец декабря в пристнопамятном СССР: надо доделать все, в августе португалы сваливают в отпуск и никого не найти. Как закончу возиться с бумагами и железками - пренепременно попробую CreateFont... |
niktuba | |||
|
Замечательно! Все получилось. Правда, всякие там TextOut(...) вертикальный текст выравнивают с загибонами, но если покумекать, то все встает на место: Я только вот чего не понял - чистит ли GDI'шный Device Context за собой созданные графические объекты или нет? В MFC используются классы с конструкторами/деструкторами, и там все понятнее. А в GDI - handles, и все более туманно. Иными словами, в программе BOOL CEChart::fbDrawChart(RECT* aPrcChart, HDC ahDC) { HBRUSH h_ChartBrush = CreateSolidBrush(RGB(250, 250, 100)); HBRUSH h_DefBrush = (HBRUSH__ *)SelectObject(ahDC, h_ChartBrush); FillRect(ahDC, aPrcChart, h_ChartBrush); // Is it sufficient SelectObject(ahDC, h_DefBrush); // or we need DeleteObject(SelectObject(ahDC, h_DefBrush)); // to clear the space allocated by h_ChartBrush ? return TRUE; } // BOOL CEChart::fbDrawChart(RECT* aPrcChart, HDC ahDC) |
|
Чистить за собой обязательно, т.е. всегда надо звать DeleteObject.
|
niktuba | |||
|
Спасибо, так мне сердце и подсказывало |
|
Кто скажет, что делает эта функция без всяких там условных переходов? :))) inline int h3(int m,int y) { return 28+!!(m-2)*2+!(y%4)*!(m-2)+m/8*(1-m%2)+(1-m/8)*(m%2); } |
|
Скажем тоже само что и
А без +30 (для положительных m) просто превращает все нечетные m в -(m-1). Вот такой же код с использованием тернарного оператора:
Для чего это нужно, не знаю. |
|
Не туда думаешь.. :))
|
|
cout << h3 ( 2, 2006 ) будет 28, cout << h3 ( 2, 2000 ) будет 29, а cout << 30+2*(1-2%2)+(1-2)*(2%2) будет 32... В смысле код - получение дней в месяце в году чистой математикой. Воооот... :))) |
niktuba | |
|
Создавая программы на С++ мне часто приходится писать документацию, включающую три языка, рисунки и исходный код. Поэтому никуда не деться, приходится для этого дела использовать MS Word. Для автоматического выделения синтаксиса (syntax highlighting) я приспособил ADX_Toys_2_WD http://www.canadiancontent.net/tech/downlo..._Toys_2_WD.html. Но эта утилита довольно глупая, подсвечивает только базовые ключевые слова, а даже #include уже кишка тонка. Есть ли в природе макросы/add-in к Ворду, которые позволяют подсвечивать все ключевые слова и выделять // зеленым комментарии? |
|
http://www.codeproject.com/com/wordhighlight.asp
|
niktuba | |||
|
Замечательно, спасибо! |
Рекомендуем почитать также топики: Весь необходимый СОФТ Комп - гипнотизёр 3ds max 5 Почтовый сервер Компутер издевается. |