TX Library Help – Version: 00172a, Revision: 104
 ALL  Windows graphics in a sandbox

TX Library Документация


Библиотека Тупого Художника (The Dumb Artist Library, TX Library, TXLib)

Version:
00172a, Revision: 104
Date:
2014-08-09 16:37:26 +0400
Copyright:
(C) Ded (Ilya Dedinsky, http://txlib.ru) <mail@txlib.ru>

Назначение

TX Library - компактная графическая библиотека для Win32 на С++. Это небольшая "песочница" для начинающих реализована с целью помочь им в изучении простейших принципов программирования. Документация на русском языке.

Философия1 TX Library - облегчить первые шаги в программировании и подтолкнуть к творчеству и самостоятельности.

TX Library is a tiny graphics library for Win32 written in C++. It is a small sandbox for the very beginners to help them to learn basic programming principles. The documentation is currently in Russian.


Разделы системы помощи

Примеры:

Представительство в Интернет

Официальный сайт библиотеки: txlib.ru. См. также страницу проекта на SourceForge и на Google Code.

Предупреждения:
Это альфа-версия. Для использования требуется согласование с автором библиотеки.
Правила использования материалов библиотеки и сайта см. на официальном сайте.
Ссылки:

Скриншоты

Example03.png

Example03.cpp: Простейшая программа

  
Movie.png

Movie.cpp: Мультфильм

Shaker.png

Shaker.cpp: Простая физическая модель движения

  
Phong.jpg

Phong.cpp: Модель освещения сферы

Tree.png

Tree.cpp: Простая рекурсия: Дерево

  
Tennis.jpg

Tennis.cpp: Использование картинок


Предупреждение, или TXLib – это всего лишь инструмент

Библиотека TXLib – это всего лишь инструмент для того, чтобы облегчить первые шаги в программировании. Однако этот инструмент, как и любой другой, может быть применен неправильно. (Тем не менее, в основу TXLib заложены некоторые принципы, помогающие конструктивному неиллюзорному обучению.)

Сама по себе любая библиотека или язык программирования не научит начинающего писать программы грамотно. Научит этому разработка своих, достаточно больших проектов, в сочетании с тесным общением профессионалов, желающих помочь начинающим. Такие профессионалы должны обладать и опытом разработки больших программ, и педагогическими навыками, чтобы передать свой опыт начинающим. К сожалению, не всегда это совпадает. Профессионалы-программисты зачастую не хотят лезть в обучение, где хватает своих проблем. С другой стороны, недобросовестные учителя, иногда даже в сильных школах и курсах, хватаются за удобные им инструменты обучения (чужие или свои библиотеки, среды и языки программирования), не удосуживаясь следить за качеством кода обучаемых, за стилем и направлением их мышления, ограничиваясь лишь видимостью обучения. Такие образовательные иллюзии очень вредны. Заметны они становятся достаточно поздно, когда выясняется, что ученик, легко пишущий небольшие программы (пусть даже логически насыщенные, олимпиадные), принципиально не способен написать что-то большее, путается в коде, а другие, в том числе и профессионалы, его не понимают в силу спутанности его мышления и неумения внятно выразить мысли на уровне современных стандартов. Чтобы преодолеть этот барьер, воздвигнутый нерадивым преподавателем (или вашей собственной нерадивостью), приходится серьезно и самостоятельно переучиваться – иногда будучи уже студентом или аспирантом. Либо смириться и "носить кофе программистам".

Искусство программирования – это искусство мышления, не надо это забывать, дорогие преподаватели и учащиеся.

Принципы, заложенные в TXLib для повышения качества обучения:
  • Сделай сам. В TXLib многие вещи сделаны или оставлены не совсем удобными для применения. Это – предложение подумать, как сделать это самому, и, как правило, для этого в TXLib есть средства. Сделав, покажите решение другим, если они быстро поймут его и оценят -- то ваше решение удачное.
  • Загляни в Help. (Слово неспроста выбрано английским, потому что большинство информации в современном программировании – на английском языке. Учите его.) Под системой помощи понимается не только TXLib Help, но и весь Internet.
  • Посмотри, как сделано. Загляни в код (см. "Исходные тексты"). Он создавался в том числе как пример программной системы со своей логикой и со своей реализацией, а некоторые функции можно понять только по коду, потому что их нет в системе помощи. Не всегда решения, примененные в TXLib оптимальны даже с точки зрения автора – он надеется, что это убережет желающих научиться качественно, но нетерпеливых учеников, от   Ctrl+C и Ctrl+V   плагиата.
  • Посмотри, как сделано иначе. TXLib – не единственная графическая библиотека, и реализация "простого графического холста", примененная в ней – не единственное решение. Посмотри, как устроены десятки других графических библиотек. Но избегай плохого кода (его можно определить по тому, как морщатся профессионалы, глядя на него, если у вас нет более объективных средств такого определения) – он научит вас плохому. Хороший, но сложный код (глядя на него, профессионалы не морщатся, а вздыхают) – отложи до времени и вернись к нему позже.
  • Выйди за пределы "песочницы". Это усиление принципа "сделай сам". Собери вместе свои мысли про хорошую библиотеку, посмотри, как устроен TXLib и его аналоги, сделай свою библиотеку, лучше TXLib'а. Это нетрудно. :) Примеры таких библиотек можно найти на сайте TXLib и в Интернете, и некоторые из них сделаны как раз начинающими.

Удачи, и May the Source be with you! :)


Поддерживаемые платформы

  • Среды программирования и компиляторы
    1. CodeBlocks 12.11 + MinGW GCC 4.8.1 (NUWEN)
    2. CodeBlocks 12.11 + MinGW GCC 4.7.2 (NUWEN)
    3. CodeBlocks 12.11 + MinGW GCC 4.7.1
    4. CodeBlocks 10.05 + MinGW GCC 4.7.1 (TDM-GCC), 32-bit и 64-bit
    5. CodeBlocks 10.05 + MinGW GCC 4.6.1 (TDM-GCC)
    6. CodeBlocks 10.05 + MinGW GCC 4.4.1
    7. CodeBlocks 8.02 + MinGW GCC 3.4.5
    8. CodeBlocks 1.0rc2 + MinGW GCC 3.4.4
    9. Dev-CPP 4.9.9.2 + MinGW GCC 3.4.2
    10. Microsoft Visual Studio 11.0 (2012)
    11. Microsoft Visual Studio 10.0 (2010)
    12. Microsoft Visual Studio 9.0 (2008)
    13. Microsoft Visual Studio 8.0 (2005)
    14. Microsoft Visual Studio 7.1 (2003)
    15. Microsoft Visual Studio 6.0 (1998)
    16. Intel C++ Compiler 13.0 (2013)
    17. Intel C++ Compiler 9.0
  • Операционные системы
    1. Windows 8, 8.1 ru/en
    2. Windows 7 ru/en
    3. Windows Vista ru/en
    4. Windows 2003 SP1 R1/R2 ru/en
    5. Windows XP SP2/SP3 ru/en
    6. Windows 2000 SP4 ru/en
    7. Linux + Wine
      • Ubuntu 10.04, 11.04 + Wine 1.2.2+
    8. MacOS X + Wine
      • Snow Leopard 10.6.8 + Wine 1.4-rc2
Заметки:
  • Принудительно отключается режим UNICODE (кроме редактора ресурсов Visual Studio). Для явной работы с UNICODE-функциями используйте суффикс W.
  • Принудительно включается режим _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES.
Предупреждения:
Если программа разрабатывалась на определенных платформах с настройками по умолчанию, то во время исполнения могут потребоваться файлы библиотек, без которых программа не запустится:
Компилятор   Среда разработки   Конфигурация   Требуемые библиотеки   

GCC g++   CodeBlocks, DevCpp, Eclipse   Debug, Release   msvcrt.dll   

Microsoft Visual C   Visual Studio 6   Debug, Release   Не требуются   
Intel Compiler 9.0   Visual Studio 6   Debug, Release   Не требуются   

Microsoft Visual C   Visual Studio 2003   Debug, Release   Не требуются   
Intel Compiler 9.0   Visual Studio 2003   Debug, Release   Не требуются   
Microsoft Visual C   Visual Studio 2005   Debug   msvcp80d.dll, msvcr80d.dll   
Microsoft Visual C   Visual Studio 2005   Release   msvcp80.dll,    msvcr80.dll   
Microsoft Visual C   Visual Studio 2008   Debug   msvcp90d.dll, msvcr90d.dll   
Microsoft Visual C   Visual Studio 2008   Release   msvcp90.dll,    msvcr90.dll   
Microsoft Visual C   Visual Studio 2010   Debug   msvcp100d.dll, msvcr100d.dll   
Microsoft Visual C   Visual Studio 2010   Release   msvcp100.dllmsvcr100.dll   
Microsoft Visual C   Visual Studio 2012   Debug   msvcp110d.dll, msvcr110d.dll   
Microsoft Visual C   Visual Studio 2012   Release   msvcp110.dllmsvcr110.dll   

Посмотреть эти зависимости можно утилитой Depends.exe.


Особенности использования

Заметки:
Файл TXLib.h должен быть включен (#include) в программу:
  • До или вместо файла windows.h. Либо надо задать (#define) константы WINVER и _WIN32_IE не ниже 0x0500 и отменить (#undef) макросы UNICODE и _UNICODE.
  • До или вместо файлов string.h или stdio.h, если используется режим строгого соответствия стандарту ANSI. Имейте в виду, что эти файлы могут включаться в windows.h.
  • После включения библиотек boost, использующих модуль boost::preprocessor.
Опции командной строки:

Компилятор Режим Опции командной строки
Dev-Cpp 4.9.9.2, GCC 3.4.2 Debug -D _DEBUG -g -ansi -std=c++98 -Wall -Weffc++ -fexceptions -Wcast-align -Wfloat-equal -Winit-self -Winline -Wredundant-decls -Wshadow -Wundef -Wunreachable-code -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wpointer-arith -Wsign-promo -Wcast-qual -Wconversion -Wformat=2 -Wstrict-aliasing -Wswitch-default -Wswitch-enum -Wwrite-strings
Release -D NDEBUG -O2 -ansi -std=c++98 -Wall -Weffc++ -fexceptions -Wcast-align -Wfloat-equal -Winit-self -Winline -Wredundant-decls -Wshadow -Wundef -Wunreachable-code -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wpointer-arith -Wsign-promo -Wcast-qual -Wconversion -Wformat=2 -Wstrict-aliasing -Wswitch-default -Wswitch-enum -Wwrite-strings
CodeBlocks 10.05, GCC 3.4.2 Debug -D _DEBUG -g -ansi -std=c++98 -pedantic -Wall -Weffc++ -fexceptions -Wcast-align -Wfloat-equal -Winit-self -Winline -Wredundant-decls -Wshadow -Wundef -Wunreachable-code -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wpointer-arith -Wsign-promo -Wcast-qual -Wconversion -Wformat=2 -Wstrict-aliasing -Wswitch-default -Wswitch-enum -Wwrite-strings
Release -D NDEBUG -O2 -ansi -std=c++98 -pedantic -Wall -Weffc++ -fexceptions -Wcast-align -Wfloat-equal -Winit-self -Winline -Wredundant-decls -Wshadow -Wundef -Wunreachable-code -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wpointer-arith -Wsign-promo -Wcast-qual -Wconversion -Wformat=2 -Wstrict-aliasing -Wswitch-default -Wswitch-enum -Wwrite-strings
CodeBlocks 8.02, GCC 3.4.5 Debug -D _DEBUG -g -ansi -std=c++98 -pedantic -Wall -Weffc++ -fexceptions -Wcast-align -Wfloat-equal -Winit-self -Winline -Wredundant-decls -Wshadow -Wundef -Wunreachable-code -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wpointer-arith -Wsign-promo -Wcast-qual -Wconversion -Wformat=2 -Wstrict-aliasing -Wswitch-default -Wswitch-enum -Wwrite-strings
Release -D NDEBUG -O2 -ansi -std=c++98 -pedantic -Wall -Weffc++ -fexceptions -Wcast-align -Wfloat-equal -Winit-self -Winline -Wredundant-decls -Wshadow -Wundef -Wunreachable-code -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wpointer-arith -Wsign-promo -Wcast-qual -Wconversion -Wformat=2 -Wstrict-aliasing -Wswitch-default -Wswitch-enum -Wwrite-strings
CodeBlocks 10.05, GCC 4.4.1 Debug -D _DEBUG -g -ansi -std=c++0x -pedantic -Wall -Wextra -Weffc++ -fexceptions -Wcast-align -Wfloat-equal -Winit-self -Winline -Wredundant-decls -Wshadow -Wundef -Wunreachable-code -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wpointer-arith -Wsign-promo -Wcast-qual -Wconversion -Wformat=2 -Wstrict-aliasing -Wswitch-default -Wswitch-enum -Wwrite-strings -Wmissing-declarations -Wmissing-include-dirs -Wlogical-op -Wstrict-null-sentinel
Release -D NDEBUG -O2 -ansi -std=c++0x -pedantic -Wall -Wextra -Weffc++ -fexceptions -Wcast-align -Wfloat-equal -Winit-self -Winline -Wredundant-decls -Wshadow -Wundef -Wunreachable-code -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wpointer-arith -Wsign-promo -Wcast-qual -Wconversion -Wformat=2 -Wstrict-aliasing -Wswitch-default -Wswitch-enum -Wwrite-strings -Wmissing-declarations -Wmissing-include-dirs -Wlogical-op -Wstrict-null-sentinel
TDM-GCC, GCC 4.6.1 Debug -D _DEBUG -g -ansi -std=c++0x -pedantic -Wall -Wextra -Weffc++ -fexceptions -Wcast-align -Wfloat-equal -Winit-self -Winline -Wredundant-decls -Wshadow -Wundef -Wunreachable-code -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wpointer-arith -Wsign-promo -Wcast-qual -Wconversion -Wformat=2 -Wstrict-aliasing -Wswitch-default -Wswitch-enum -Wwrite-strings -Wmissing-declarations -Wmissing-include-dirs -Wlogical-op -Wstrict-null-sentinel
Release -D NDEBUG -O3 -ansi -std=c++0x -pedantic -Wall -Wextra -Weffc++ -fexceptions -Wcast-align -Wfloat-equal -Winit-self -Winline -Wredundant-decls -Wshadow -Wundef -Wunreachable-code -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wpointer-arith -Wsign-promo -Wcast-qual -Wconversion -Wformat=2 -Wstrict-aliasing -Wswitch-default -Wswitch-enum -Wwrite-strings -Wmissing-declarations -Wmissing-include-dirs -Wlogical-op -Wstrict-null-sentinel
CodeBlocks 12.11, GCC 4.7.2 Debug -D _DEBUG -g -ansi -std=c++11 -pedantic -Wall -Wextra -Weffc++ -fexceptions -Wcast-align -Wfloat-equal -Winit-self -Winline -Wredundant-decls -Wshadow -Wundef -Wunreachable-code -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wpointer-arith -Wsign-promo -Wcast-qual -Wconversion -Wformat=2 -Wstrict-aliasing -Wswitch-default -Wswitch-enum -Wwrite-strings -Wmissing-declarations -Wmissing-include-dirs -Wlogical-op -Wstrict-null-sentinel -Wstack-usage=8192
Release -D NDEBUG -O3 -ansi -std=c++11 -pedantic -Wall -Wextra -Weffc++ -fexceptions -Wcast-align -Wfloat-equal -Winit-self -Winline -Wredundant-decls -Wshadow -Wundef -Wunreachable-code -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wpointer-arith -Wsign-promo -Wcast-qual -Wconversion -Wformat=2 -Wstrict-aliasing -Wswitch-default -Wswitch-enum -Wwrite-strings -Wmissing-declarations -Wmissing-include-dirs -Wlogical-op -Wstrict-null-sentinel -Wstack-usage=8192
CodeBlocks 12.11, GCC 4.8.0 Debug -D _DEBUG -g -ansi -std=c++11 -pedantic -Wall -Wextra -Weffc++ -fexceptions -Wcast-align -Wfloat-equal -Winit-self -Winline -Wredundant-decls -Wshadow -Wundef -Wunreachable-code -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wpointer-arith -Wsign-promo -Wcast-qual -Wconversion -Wformat=2 -Wstrict-aliasing -Wswitch-default -Wswitch-enum -Wwrite-strings -Wmissing-declarations -Wmissing-include-dirs -Wlogical-op -Wstrict-null-sentinel -Wstack-usage=8192
Release -D NDEBUG -O3 -ansi -std=c++11 -pedantic -Wall -Wextra -Weffc++ -fexceptions -Wcast-align -Wfloat-equal -Winit-self -Winline -Wredundant-decls -Wshadow -Wundef -Wunreachable-code -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wpointer-arith -Wsign-promo -Wcast-qual -Wconversion -Wformat=2 -Wstrict-aliasing -Wswitch-default -Wswitch-enum -Wwrite-strings -Wmissing-declarations -Wmissing-include-dirs -Wlogical-op -Wstrict-null-sentinel -Wstack-usage=8192
MSVS 6 Debug /D _DEBUG /Od /Gm /GX /GR /GZ /Zi /MTd /FD /W4 /D WIN32 /D _CONSOLE /D _MBCS
Release /D NDEBUG /O2 /GX /GR /MT /FD /W4 /D WIN32 /D _CONSOLE /D _MBCS
Intel C++ 9 (MSVS 6) Debug /D _DEBUG /Od /Gm /GX /GR /GZ /Zi /MTd /FD /W4 /Wall /Wcheck /Wport /D WIN32 /D _CONSOLE /D _MBCS
Release /D NDEBUG /O2 /GX /GR /MT /FD /W4 /Wall /Wcheck /Wport /D WIN32 /D _CONSOLE /D _MBCS
MSVS 2003 Debug /D _DEBUG /Od /Gm /GS /GR /EHsc /RTC1 /RTCc /Wp64 /TP /ZI /MTd /W4 /D WIN32 /D _CONSOLE /D _MBCS
Release /D NDEBUG /O2 /GS /GR /EHsc /Wp64 /TP /Zi /MT /FD /W4 /D WIN32 /D _CONSOLE /D _MBCS
Intel C++ 9 (MSVS 2003) Debug /D _DEBUG /Od /Gm /GS /GR /Gd /EHsc /RTC1 /RTCc /Wp64 /ZI /MTd /W4 /Wall /Wcheck /Wport /Qtrapuv /Qmultibyte-chars /Qvc7.1 /D WIN32 /D _CONSOLE /D _MBCS
Release /D NDEBUG /O2 /GR /Gd /EHsc /Wp64 /Zi /MT /FD /W4 /Wall /Wcheck /Wport /Qmultibyte-chars /Qvc7.1 /D WIN32 /D _CONSOLE /D _MBCS
MSVS 2005 Debug /D _DEBUG /Od /Gm /EHsc /RTC1 /RTCc /Wp64 /TP /ZI /MTd /W4 /analyze /fp:except /D WIN32 /D _CONSOLE
Release /D NDEBUG /O2 /GL /EHsc /Wp64 /TP /Zi /MT /FD /W4 /analyze /D WIN32 /D _CONSOLE
MSVS 2008 Debug /D _DEBUG /Od /Gm /EHsc /RTC1 /RTCc /TP /ZI /MTd /W4 /analyze /fp:except /D WIN32 /D _CONSOLE
Release /D NDEBUG /O2 /GL /Gy /Oi /EHsc /TP /Zi /MT /FD /W4 /analyze /D WIN32 /D _CONSOLE
MSVS 2010 Debug /D _DEBUG /Od /Gm /GS /GR /Gd /Oy- /EHsc /RTC1 /RTCc /MP /WX- /TP /ZI /MTd /W4 /analyze /fp:except /fp:precise /Zc:wchar_t /Zc:forScope /D WIN32 /D _CONSOLE /D CODE_ANALYSIS
Release /D NDEBUG /O2 /Gm- /GS /GR /GL /Gd /Gy /Oi /Oy- /EHsc /MP /WX- /TP /Zi /MT /W4 /analyze /fp:precise /Zc:wchar_t /Zc:forScope /D WIN32 /D _CONSOLE /D CODE_ANALYSIS
MSVS 2012 Debug /D _DEBUG /Od /Gm /GS /GR /Gd /GF /Oy- /EHsc /RTC1 /RTCc /MP /WX- /TP /ZI /MTd /W4 /analyze /fp:except /fp:precise /Zc:wchar_t /Zc:forScope /sdl /openmp /Qpar- /D WIN32 /D _CONSOLE /D _WINDOWS
Release /D NDEBUG /O2 /Gm- /GS /GR /GL /Gd /GF /GT /Gy /Oi /Oy- /Ob2 /Ot /EHsc /MP /WX- /TP /Zi /MT /W4 /analyze /fp:precise /Zc:wchar_t /Zc:forScope /sdl /openmp /Qpar /D WIN32 /D _CONSOLE /D _WINDOWS

Эти ключи могут вызывать появление предупреждений для файла TXLib.h о символе $, использующемся для отладки, и о директиве #warning. Они настолько суровы, что могут вызвать   Чака Норриса   предупреждения даже для файлов стандартных библиотек C++ (вне зависимости от того, используется TXLib.h или нет).


История изменений

  • Версия 0.172
    1. API
      1. Добавлена cовместимость с MS Visual Studio 2010 и 2012.
      2. Соответствие стандарту C++0x для MSVS 2010, MSVS 2012, GCC 4.6.1 и C++11 для GCC 4.7.1 в режиме компиляции -Wall -Wextra -Weffc++ (см. таблицу опций компиляторов).
      3. Убраны лишние предупреждения о неинициализированнях полях структур при инициализации вида = {} (только для компиляторов MS и GCC версии 4).
      4. Изменен диалог About, заголовки окна и окон сообщений.
      5. Изменен и дополнен формат вывода ошибок.
      6. Добавлены функции для работы с консолью.
      7. Добавлены новые функции служебного характера.
      8. Макрос TX_THROW переименован в TX_ERROR, макрос TX_NEEDED – в asserted. Добавлены макросы verify, verified. Обеспечена обратная совместимость.
      9. Макрос _TX_IMPORT переименован _TX_DLLIMPORT, так больше похоже на __declspec (dllimport).
      10. Убрана облегченная поддержка регионов отсечения (теперь – только средствами Win32).
      11. Добавлена системная клавиша Alt+Ctrl+Shift+PrintScreen, временно отменяющая блокировку обновления окна, см. txBegin().
      12. Добавлена многооконность и работа в DLL (experimental and not fully documented).
      13. Файл Graphics.h больше не поддерживается – не нужен он никому.
    2. Документация
      1. Дополнен текст документации, примеров использования, добавлены демонстрационные программы и дополнения от разных авторов (в папке TX/Examples/Demo). Подробно документирован исходный текст функции txInputBox() для иллюстрации работы с диалогами Win32.
      2. Документация по примерам вынесена в отдельный файл.
      3. TXLib теперь упоминает кота Мару (Maru the cat) в одной из своих функций. TXLib is now referencing Maru the cat in one of its functions.
    3. Реализация
      1. Во все функции добавлены проверки параметров и установка кода ошибки SetLastError().
      2. Упрощен механизм трансляции текста консоли в окно TXLib.
      3. Добавлена динамическая иконка окна.
      4. Добавлено автоматическое удаление HDC и предупреждение об этом через Tray Notification.
      5. Добавлена принудительная установка русского языка в консоли, см. пляски с бубном в _txConsole_SetUnicodeFont().
      6. Если процесс с TXLib запущен в среде программирования, которая будет ожидать нажатия клавиши для завершения процесса, TXLib теперь завершает процесс-родитель этой среды. Поддерживаются MS Visual Studio, CodeBlocks, Eclipse. См. _TX_WAITABLE_PARENTS.
      7. Поддержка среды Eclipse с ее альтернативно талантливой идеей эмулировать консоль в эклипсовском окне и использованием каналов (pipes) для ввода-вывода.
      8. Код библиотеки верифицирован в статических анализаторах кода Cppcheck v1.53, PVS-Studio v4.54 и Coverity Scan, и в динамическом анализаторе MicroFocus DevPartner v10.5.
    4. Установка
      1. Убраны сообщения об ошибках в Setup.js
  • Версия 0.171
    1. Соответствие стандартам MS SAL и режиму компиляции /analyze в MSVS 2005, 2008.
    2. Восстановлен механизм обновления по таймеру.
    3. Русский язык в консоли в _txThrow().
  • Версия 0.170
    1. Исправление ошибок в _txCanvas_OnPAINT (NULL DC).
    2. Упрощен механизм генерации сообщений для обновления экрана.
    3. Добавлена трассировка (TX_TRACE).
  • Версия 0.169
    1. Добавлена работа с диалоговыми окнами (still experimental).
  • Версия 0.166
    1. Исправлена работа при использовании отладчиков на платформах Win2000, WinXP.
    2. Документированы отладочные функции и макросы.
  • Версия 0.165
    1. Добавлены Мастера проектов для VS6, VS2003-2008, CodeBlocks, DevCPP.
    2. Добавлена интеграция с системой помощи для VS2003-2008.
  • Версия 0.164
    1. Добавлена cовместимость с Visual Studio 2005.
    2. Изменен размер шрифта консоли и шрифта, выбранного по умолчанию.
  • Версия 0.150
    1. Добавлены txTransparentBlt(), txAlphaBlend() - Win98 и старше.
    2. ВНИМАНИЕ! Функции txSetBkColor(), txBkColor(), txGetBkColor() теперь называются txSetFillColor(), txFillColor(), txGetFillColor() (совместимость со старыми версиями - в Graphics.h).
  • Версия 0.145
    1. Добавлена txPlaySound().
  • Версия 0.144
    1. Исправлен баг в txMouseButtons().

Сообщения об ошибках

Тем, кто зарегистрирован на SourceForge.net, можно:


Литература

  1. Сальников В.Н., Ильин В.В., Шарко Ф.С., Митина Н.В., Белая И.В., Индукаев А.К., Дединский И.Р. Структура и динамика поведенческих реакций в условиях информационной перегрузки. Batman Proceedings in Sheep Philosophy, 2003, Vol. 22. pp. 23-24.