четверг, 14 апреля 2011 г.

Исследуем Watch Window

Все знают, что в процессе отладки приложения в окно watch можно скопировать переменные, значения которых мы хотим отслеживать. Посмотрим какие же еще возможности дает нам этот инструмент. Итак:

1) Переменным можно задавать формат. Наиболее частые спецификаторы:
hr: HRESULT или Win32 Error code;
x: 16-ричное представление;
o: 8-ричное представление;
d или i: знаковое 10-тичное представление;
u: без знаковое десятичное представление;
f: знаковое с плавающей точкой;
e: экспоненциальный формат представления;
c: символ;
s: строка;
su: строка UNICODE;
wm: Window message.


Самые интересные это hr - выдает описание ошибки и wm - можно смотреть именованные сообщение windows.

понедельник, 11 апреля 2011 г.

Что подразумевает программист, когда говорит..

Невозможно в принципе — Я не знаю, как это сделать.
Невозможно — Я знаю как, но мне лениво.
Сложно — Придется прочитать документацию.
В принципе, реализуемо — Я как раз вчера скачал из интернета библиотеку, которая решает поставленную задачу.
Работает — Компилируется.
Отлаживаю — Не компилируется.
Прогоняю тестовые примеры — Пытаюсь найти такой, на котором программа не вываливается.
Работал допоздна — Играл по сети.
После обеда — Часам к 18:00.

_________
стырено с просторов интернета

пятница, 8 апреля 2011 г.

Security Enhancements in the CRT

       C некоторых пор Microsoft озаботилась безопасностью древних функций CRT, таких как: sprintfitoastrcpy и прочих. Полный список опубликован на сайте Microsoft Deprecated CRT Functions. Вроде все разумно, при переходе с VS 6 на VS 2008 просмотрел все warning компилятора и все указанные функции честно заменил их на *_s аналоги.
       Но в число прочих попала функция fopen, ее я естественно тоже заменил на fopen_s, и тут меня ждала неожиданность - оказывается поведение fopen и fopen_s немного разное, а точнее fopen_s открывает файл только для себя (not sharable). В моем случае получилось что, пока я не закрою программу, я не могу открыть "log" файл на просмотр и следить что происходит.
       Причем Microsoft честно предупреждает об этом в MSDN и говорит что делать:
Remarks
"Files opened by fopen_s and _wfopen_s are not sharable. If you require that a file be sharable, use _fsopen, _wfsopen with the appropriate sharing mode constant (for example, _SH_DENYNO for read/write sharing)."
       Но об этом надо каждый раз помнить, тупо следовать указаниям компилятора и менять все функции на их *_s аналоги нельзя!

четверг, 7 апреля 2011 г.

Программирование Copy-Paste.

    При Copy-Paste программировании иногда копируешь пустую строку, т.е. случайно нажимаешь Ctrl+C вместо Ctrl+V, находясь на пустой строке. Таким образом, удаляем текст, который хотели бы вставить.
    
    Настройка, которая помогает избежать потерь, была найдена в диалоговом окне Tools - Options - Text Editor - All Languages – General. В нем имеется флажок Apply Cut or Copy commands to blank lines when there is no selection.. Его отмена позволяет нажимать Ctrl+C в пустой строке без риска потерять информацию, находящуюся в буфере обмена.


____ 
первоисточник найден тут: Sara Ford