Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11723
Последний выпуск: 19.06.2015

Бейскик и VB.NET

Компьютерная литература еще с тех времен, когда зародилось само понятие "Бейсика" как средства автоматизации "вычислений" (так как назвать Бейсик того времени языком программирования было нельзя) и рассчитанное на непрофессиональных пользователей ПК, пестрила в принципе единогласной идеологической линией: Бейсик ущербен, примитивен, ненадежен, p-код, генерируемый им, далек от норм скорости выполнения, "программист" на Бейсике не может того-то и того-то, да и вообще - "программист" на Бейсике - не программист вовсе...

С корабля - на бал, или быль о гадком утенке

Шло время, корпорация Microsoft с почитателем Бейсика (как уникальнейшего средства) во главе, сотворила первую версию продукта. К тому времени ни один из релизов, - будь то официальный софтверный бренд-продукт, либо же ПО "третьего лица", не участвовал ни в тестах производительности компилируемого кода, ни в оценке средств разработки ведущими компетентными инстанциями. Так, выпустив на рынок MS BASIC, Microsoft была вынуждена пересмотреть его концептуальную сторону, и по прошествии определенного времени на свет стали появляться адаптированные под MS Windows Visual-бейсики. Однако, не смотря на растущую популярность VB прошлых лет, последний все еще был изгоем де-факто в глазах "продвинутых", истинных программистов, чьи пальцы привычно выбивали void MyFunction, но никак не Private Sub. Действительно, "рубашка" Си/Си++ намного ближе и к MS Windows - ОС, написанной на Си, и к MS DOS, рожденному родственным компилятором, чем Бейсик (отбросьте сразу суррогатные явления типа QBasic и "то", что изучали в школах Советского Союза - в данной публикации речь о них не идет и идти, надеюсь, не будет). Этим не сложно объяснить привилегии Си-программистов, когда речь заходит о пакетах для разработчиков - т.н. SDK, Software Developer Kit`s.

Итак, первым переломом в мире "VB-куръеза" стал Visual Basic 4, когда стала ощутимой власть COM, рывком вынесшая Бейсик на очередную ступень эволюции (стало возможным создание динамических библиотек... Не ахти как рационально, но... сам процесс...), вторым - пятая версия. Отныне программисты имели право рассматривать VB 5.0 как инструмент для создания ActiveX-компонентов. Существовала даже "версия-фрагмент": VB CCE - Visual Basic Control Creation Edition. Не прекращались полемические баталии о вреде "мышления в стиле Бейсик" - простите за случайность - и, надо заметить, небезосновательно, а также об участи VB как о "версии VBA - Visual Basic for Applications" (пояснение: если и судить об иерархической природе одного продукта как о производном от другого, то правильнее было было рассматривать VBA как язык "скриптинга" офис-приложений Microsoft, Corel и других носителей, взявший начало из Visual Basic, и никак иначе). Иными словами, "там ему и место". Однако лишь будущее показало, кто есть кто...

Шестая версия, как может показаться, ничего особенного в себе не несла, за исключением дополнительных возможностей при работе с базами данных и Интернет плюс дополнительные встроенные функции, существенно облегчающие (точнее, упрощающие) некоторые задачи из области строковых операций, а также несколько других. Воинственность оппонентов Бейсика не прекращается, и...

Framework - виртуальная машина будущего или эксперимент?

Сегодня, когда анонсирован Visual Studio .NET (v.7) и уже распространяется свободная к загрузке с сайта Microsoft его бета-версия, специализированные СМИ (он- и офф-лайн), как в былые времена, еще раз подчеркивают "скандальность" характера Visual Basic. Однако ранее, как у любого гениального творения, имела место незыблемая противоречивость VB: здесь масса положительных черт уравновешивалась такой же массой слабых мест и явных провалов, порой позорных.

Что же такое .NET Framework? Ответ однозначен: это - виртуальная машина, фундамент, который послужит основой для создаваемых приложений будущего. dotNET Framework можно (теоретически) сравнить с той же Java VM, и, если отбросить отличия (скорее, легче сосчитать сходства), без труда мотивировать новую стратегию. Быть может, одна из целей "ясновидящей" Microsoft - завладение близлежащих вотчин в мире ПО и Операционных Систем через такого рода переносимость кода. Что это - "принудиловка" следования Ц.У. монополиста или все же оправданный, жизнью продиктованный шаг во имя той же автоматизации менеждмента памяти и отказ от привычного стиля жизни ОС? Судите сами, господа.

Как уже, наверное, известно читателю, MS Visual Studio .NET преподнес настоящий сюрприз всем прослойкам "муравейника" программистов: интернетчики как олицетворение сегодняшних достижений Информационных Технологий на фоне "е-веяний" получили ASP+, да и JScripter`ы не остались обделенными. Любители FoxPro и Visual C++ получили (вернее, получат при выходе финального релиза .NET) новые версии своих привычных средств разработки. И вот тут-то и начинается самое интересное: dotNET готовит сразу два лакомых кусочка - на десерт ли, или же в качестве основного продукта - для кого как. MS Visual J++ не получил дальнейшего развития, очевидно, только из стратегических (в рамках маркетинговой политики Microsoft) соображений. Мотивы - Java есть детище Sun...

Одно очевидно: новый Visual Basic .NET - он же VB 7 - является сенсацией нового тысячелетия, так как отбросив все отрицательное (см. ниже) становится одним из ключевых моментов вообще VS 7 благодаря сильным бесспорным сторонам. Как известно, ранее, омраченные тяжестью "другой стороной медали", заслуги Бейсика меркли и вскоре просто игнорировались. Вторым "коньком" седьмой VS стал абсолютно новый, доселе не имевший аналогов язык программирования C# (читается как "Си-Шарп". Рабочее название - как один из вариантов - было "Си-Хэш"). Просматривая зарубежную онлайн-прессу, не раз натыкаешься на статьи с подобными глупейшими заголовками: "Что лучше - C# или VB.NET?".

Как тут не вспомнить о бойкоте Бейсика в нелегкие для него времена? Наверняка здесь играет роль некий комплекс неполноценности Бейсика. Вероятно, годы наложили не лучший отпечаток, клеймо на язык BASIC в целом. Может, следовало бы его переименовать? А может, это - проявление характера авантюрной личности "кое-кого" из Microsoft, решившей сыграть на чувствах?, А может, это один из еще не выжатых до основания источников? Однако суть не совсем в целях - она в конечном результате, а также в цене, которую платят пользователи за чью-то прихоть.

Ларчик просто открывался

Идея .NET Framework заключена, если быть кратким, - в общих компонентах, участвующих в производстве ПО. Так, все языки программирования, входящие в комплект .NET, генерируют общий промежуточный код (Intermediate Language, IL), который компилятор .NET компилирует в практически идентичный код (были проведены исследования двух полноценных IL-результатов от двух разных проектов - VB.NET и C#, причем задача была поставлена отнюдь не тривиальная типа Hello, World!, а, напротив, насыщенная ресурсоемкими циклами и "ветвистостью" кода): вот где секрет переносимости - компании, уже сегодня занявшиеся разработкой .NET-версий своих продуктов - например, Eiffel (т.е. Eiffel#), - а также виртуальные машины для Linux/Unix, MacOS и т.д. продолжат начатое. А поддержка .NET Framework, ясное дело, весьма закономерна. И как тут не вспомнить вовремя выпущенную .NET Framework SDK? Ну что, проясняется ситуация?

А интерес "третьих лиц" можно подогревать бесплатными сервис-паками к совсем неисследованной на предмет багов SDK (для совсем сырой Framework) на www.microsoft.com и списком, например, новых возможностей - точь-в-точь, как для NT.

Золотая середина: IL

У читателя возникнет вопрос: что же дальше ожидает промежуточный код, сгенерированный общей .NET IDE и какова его природа?

При тестовой эксплуатации .NET-приложений было замечено их явное "торможение". Intermediate Language - это только часть истории. Действительно, IL, по идее применения сравнимый с p-кодом Бейсика или пре-компилированным кодом Java, (что более соответствует образу IL, т.к. необходимо учесть, для чего вообще эта переносимость нужна - конечно, это есть World Wide Web), можно рассматривать и как некий эксперимент: как насчет p-кода для Visual C++? А Visual Basic под Линукс? Тут же можно провести параллель с Delphi для Linux. Но ведь MS зрит в корень - отныне любое .NET-приложение может выполняться на куда-угодно-установленной .NET Framework, а сегодняшняя ее "однобокость" - MS Windows 9x, плюс все NT - лишь дело времени.

Если серъезнее, то здесь имеет место технологический прием, называемый Just-In-Time Compile (JIT) - тема не новая, однако в таком контексте пока вызывает только огорчения тестеров. Принцип таков: исходный код проекта пре-компилируется в Intermediate Language (который, кстати, еще называют Assembly), а при выполнении пре-компилированного приложения .NET Framework позаботится об остаточной, завершающей "докомпиляции" ПО. Происходит это... just in time - во время выполнения последнего. И так - каждый раз при запуске программы. Microsoft, однако, обязуется решить проблему, пообещав реализацию сохранения результатов уже откомпилированного однажды IL-кода приложения где-то на жестком диске. То есть ждите "дрожжевого свопа"...

Кроме того, исходный код, написанный, к примеру, на Visual FoxPro или C#, может быть доработан уже на Visual Basic .NET, пройдя пре-компиляцию в Intermediate language - ".NET languages: один за всех и все за одного" (цитата). Этот факт, однако, имеет максимальное количество отрицательных отзывов: существует ли такая ситуация, когда доработку Си-проекта нужно выполнить на VB.NET (и наоборот)? И настолько ли удобочитаем IL, чтобы не рискнуть начать проект на другом языке? Приведенные примеры одного из уважаемых авторов, "ex-волшебников" VB, говорят об обратном (появились переиначивания .NET в .NOT, к слову, а также масса сленг-извращений - из статьи Карла Петерсона "Visual Basic .NOT"). Другая же сторона - лагерь приверженцев идеи Intermediate Language - убеждены (и в чем-то правы, к стати), что сей факт - лишь случайный положительный эффект, и никто не обязывает к реализации возможности портирования VB-кода в код C# или Visual C++.

Но делает ли хоть какие-то шаги случайно Microsoft?...

Поздравляем - сектор "ноль"!

С точки зрения частного лица, не обладающего солидной базой наработок в области программного обеспечения, входящий в состав Visual Stidio .NET "Мастер Миграции из VB6 в VB.NET", который не гарантирует стопроцентного соответствия исходного кода (версии 6) в результирующий - .NET - будет выглядеть лишь как "еще один из способов сократить ручную работу". Однако для специалистов, чьей специализацией есть профессиональное (то есть коммерческое) творение ПО средствами Visual Basic, такой "ломастер" вряд ли внушает сколько-нибудь оптимизма. Причина - далеко ушедшие новшества как структурного характера нового Бейсика, так и его лингвистические нововведения, которые Wizard почему-то не в силах осмыслить... Таким образом, профессионалам придется писать код по новой, накапливая ошибки в силу необъезженности VB.NET, .NET Framework и так далее - при том, что испытанный годами и сотнями пользователей код VB 5 и 6 жестоко отбрасывается в утиль как устаревший механизм, тогда как в различного рода проекты (читай: "мероприятия") были сделаны немалые капиталовложения по всему миру. Отсюда следует (мнение автора - не более того), что "мода" на .NET придет либо: 1) с обеспечением портирования версии 6 в седьмую, 2) новыми специалистами (которые, к стати, уже к концу текущего года поползут как грибы после летнего ливня), не одурманенными вольготными правилами Visual Basic прошлого века, соответствующим опытом разработки в старом стиле и балластом программного обеспечения, сопровождения которого требуют в первую очередь клиенты разработчика. Эффект "разгрома" сложившихся традиций усилен не самыми радужными перспективами на ближайший год даже для опытнейших программистов. По прогнозам многих зарубежных аналитиков, прироста в полку следует ожидать к концу текущего года, однако нет никаких гарантий относительно его состава (читай: кто был "всем", тот стал "никем", and vice versa). Из этого, однако не следует делать выводов об "обреченности" той массы программистов, которые, вопреки всему и вся, избрали т.н. "легкий хлеб" а в свете грядущей перемены имеют шанс разыграть лотерею из серии "место под солнцем" снова: уже появились в продаже книги по C# (и уже многочисленные) - как предвестники новой волны, которая, уверен, вскоре хлынет на никем не занятые территории и другими тематиками (VB.NET не заставит долго ждать - это же чей-то огромнейший кусок хлеба. Думаю, об этом догадался не только автор настоящей публикации, но и десятки тысяч издательств мира... однако, как мне почему-то кажется, Украина не будет лидировать в этой гонке за кусок праздничного пирога), а также великое множество статей и FAQ`ов на тему .NET в целом. Практически ни один корпоративный или информационно-аналитический сайт, ориентированный на разработку ПО и его распространение (по крайней мере для ОС Windows 9x), не обошел вниманием факт появления бета-версии революционно-сенсационного средства быстрой разработки приложений и практически на каждом из них уже имеется десяток советов, как подготовить VB6-проект к более-менее безболезненному "конвертированию" в новый формат - перед использованием Мастера Миграции, а также предостережения до сих пор использующим шестую версию Visual Basic, но планирующим "ремастеринг" в будущем.

Хорош Федот, да уже не тот

Популярная точка зрения тех, кто, не будучи лично знаком с Visual Basic, пытается сосчитать количество сходств между VB6 и VB.NET и при этом сделать объективные адекватные выводы: VB.NET - это якобы очередная, новая версия Visual Basic, и, возможно, Microsoft вскоре реализует "типа-Upgrade-for-VB6".

Это утверждение - не просто заблуждение: если корпорация-производитель и выпустила бы (представим на минуточку) подобного рода довесок для... - будем это называть так - "имитации синтаксических приемов новейшего Бейсика" (другого резона трудно представить исходя из трактования замысла .NET Framework), тогда как быть с упомянутой "виртуальной машиной", ведь все языковые средства из комплекта отныне используют одни и те же Runtime-модули. Если быть точными - CLR (Common Language Runtime). Конечно, неиспользование Framework сегодня выразится в отставании от "уже действительно самой" прогрессивной части населения планеты Земля, но завтра, возможно, станет ИТ-"ересью".

Что же нового несет в себе VB.NET и насколько разительны отличия его от привычных Бейсиков прошлого?

Во-первых, Microsoft одним движением "тренированной" руки по-своему расставила акценты. Отныне Visual Basic - "... первоклассный Объектно-Ориентированный язык программирования... " и "... байки о том, что VB имитирует наследование через делегирование, при этом являясь ОО-симулянтом, канут в лету... ".

Да, действительно Visual Basic стал таковым, однако он не мог им не стать, разделяя ресурсы с другими языками клана .NET, чей статус основанных на ООП (не просто поддерживающих) под сомнение ставить не приходится.

Кроме наследования "высшего сорта" в VB.NET включены и остальные долгожданные атрибуты Объектно-Ориентированного подхода, да и просто "фишки" языков типа C++: ключевое слово Overrides (когда подобное "переназначение" позволяется только в явно указанных случаях - во избежание случайного - например, из производного класса), ключевое слово Implements (с целью имплементации, к примеру, интерфейсов), ключевого слова Inherits (что уже своим написанием говорит обо всем и сводит на нет все сомнения, если таковые еще остались относительно природы ОО-Бейсика .NET), конструкторы, до боли знакомые программистам на всех ОО-языках, структура Try...Catch...Finally (призванная впредь избежать ошибок "незавершенности начатого" - ("сказал а - скажи и б"), рождающихся в окончивших свой срок существования On Error GoTo и On Error Resume Next/Exit ..., а также GoSub...Return), реализована привычная для разработчиков на C/C++ потоковость (Free Threading, когда одно приложение может порождать множество потоков (процессов), один от другого не зависящих и выполняющихся практически автономно. К стати, если вышесказанное хоть как-то могло быть реализовано иными средствами в VB6, то потоки были вовсе недоступны "басиковцам", отчего они весьма горюнились), а также введено понятие перегрузки (одна функция или процедура может принимать различные аргументы различных типов; при этом вычисление происходит без ошибки несоответствия типов, и понятно почему). Введено явно заимствованное из C/C++ ключевое слово Return, которое возвращает значение из функции, в рационе появился объект Exception. Удобство можно объяснить тем же, чем и преимущество лексеммы "Me" перед frmMyForm или Form1.

В VB.NET не является синтаксической ошибкой определение значения переменной в строке ее объявления (что весьма и весьма удобно), а также "доделан" механизм объявления однородных переменных в одну строку (если уважаемый Читатель знает, в объявлении Dim A, B, C, D As String только одна переменная принимала тип Строка - D, остальные - Variant):

Введены также жесткие меры по пресечению "произвола" программистов: в действительности привыкание пользователей VB 4, 5, 6 к перенастройке измерений массивов, используя директивы Option Base (и другие вредные попущения, которые сродни привыканию к никотину :)) портят вкус программиста, ведут к распущенности и, в следствие заполнения потенциальными ошибками, усиленными заведомо отключенной проверкой типов, затрудняют процесс отладки и слежения за поведением всего проекта на стадии разработки, не говоря уже о багах откомпилированных программ, которые снятся программистам на VBA и VB в самых страшных снах. К счастью, VB.NET более не позволяет использовать "умолчательные" свойства элементов управления (см. код ниже), экономить на объявлениях переменных, устанавливать значение индекса первого элемента массива равным единице.

Однако наряду с этими мерами по "оздоровлению" Бейсика были введены и меры явно репрессивного (как показалось некоторым западным журналистам-"языковедам") характера: .NET-boolean со значением True в числовом эквиваленте более не отрицательное -1. Это - положительное 1. Таким образом, если программист использовал числовые эквиваленты вместо True и False, то никакой мнимый анализатор кода без целенаправленного поиска значений переменных согласно объявленному типу не в состоянии будет отловить логическую ошибку (а часто и тупик) в коде шестого Бейсика - следует учесть, что VB 6 не требовал строгого объявления переменных, а вслучае "отсутствия факта присутствия" просто имел в виду тип Variant. Variant же порождает множество интерпретаций задуманного... Прибавьте ко всему сказанному грядущие неприятности на фронте ByVal и ByRef - в лагере Классов, к примеру...

Visual Basic версии 6 рассматривал Integer как 16-битную переменную. VB.NET - как 32-битную, что рано или поздно скажется на производительности в проектах любого языка программирования клана .NET. Зачем? Кажется, неспроста...

И, наконец, самое печальное: MESSAGEBOX - это не то же, что и MessageBox. Другими словами, отныне обязательно соблюдение регистра символов. Несоблюдение приведет к ошибке. Увы...

Что может VB.NET?

Прежде всего, создание приложения, в любом .NET-языке - это запуск общего IDE. Причем и отладка, и компиллирование происходит там же. При запуске последнего пользователю предлагается выбрать тип проекта, исходя из предустановленных шаблонов проектов. Шаблоны (по своему назначению) можно пополнять. В комплект входят шаблоны Web-приложений, Web-сервисов, Win-приложений, Элементов Управления Windows, которые теперь именуются как Windows Controls, Элементов Управления для веб-контента (Web Controls), шаблона класса, консоли и других.

Сами же синтаксические извороты нового века в Бейсике пока непривычны, но, как уже было сказано не раз - дело привычки. Так, любая функция вызывается из базового класса, входящего в BCL (Base Class library), и вызывается как функция-член класса в предыдущих версиях VB - через точку. Причем функции типа вызова окна сообщения (и других наиболее употребительных) реализованы для совместимости кодов и являются всего лишь "эмуляторами" новых. Значительно переработан арсенал для работы с файлами, веб-сервисами (а вот WebForms там не оказалось) и т.п.

Конечно, если судить о Visual Basic .NET как о продукте наступившего "нового" тысячелетия, когда возросли и запросы пользователей, и программные средства не позволяют воплотить эти пожелания без определенной доли "хакинга", то Visual Basic .NET и C# - продукты времени. Их появление как раз очень своевременно и многими желанно. К тому же по большому счету для посредственного Бейсик-пользователя особых затруднений возникнуть не должно. Тем паче, что ООП (и другие, подвергшиеся изменениям, малоиспользуемые способы ведения ведения войны с компилятором) в рамках этого языка использовали не полее 60-70% "программистов"-непрофессионалов (в смысле некоммерческих и неопытных разработчиков), так что адаптация для многих произойдет без нечеловеческих усилий и едва ли ощутимо.

Инсталляция

Важный момент: инсталляционный пакет, будучи частью .NET-технологической цепочки, также построен на базе новшеств. Поэтому и ошибки неизбежны, и недоработки слишком заметны. Однако неследует забывать: мы имеем дело с бета-версией.

Процесс установки ни у одного из респондентов опроса, по данным одного из наиболее известных информационно-технологических обозрений в Сети, не прошел без сбоев. Как минимум три-четыре раза Система пыталась "лечь" ниц. Инсталляция Visual Studio .NET обычно происходит в два основных этапа: обновление OS Windows 9x (под нужды .NET Framework, надо полагать) и сама установка Visual Studio. Однако разочарование для пользователей Windows 95: в инструкции по установке сказано, что создание программного обеспечение на базе машины .NET невозможно, однако запуск готового .NET-ПО - вполне допустим.

Ошибки на стадии обновления - одно из наиболее уязвимых мест .NET - здесь и происходит война миров - низы еще хотели бы пожить по-старому, а "верха" еще не могут без треска по-новому... В остальном лучше пока придерживаться опций по умолчанию - проблем будет намного меньше.

Что ж... Microsoft уже заикнулась о второй бета-версии MS .NET... Сколько новых сенсаций/разочарований ждет VB-поклонников с ее выходом?

Поживем - увидим.

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
Аноним
Мне нравитсяМне не нравится
22 апреля 2006, 03:22:58
Нифига ВБ.НЕТ не регистрозависимый. Про это - бред...

2.
Аноним
Мне нравитсяМне не нравится
11 февраля 2006, 15:56:35
WinApi-то есть, но написать на VB6 реальный безопасный многопоточный проект наверное нельзя (несмотря на утвепрждения того же Эйпельмана).
Я пишу на VB6 и не вижу веской причины, почему так сильно нужна многопоточность. ADO, например, позволяет асинхронно выполнять запросы.
Я измучился уже, пытаясь сделать библиотеку для реализации мноопоточности - не выходит. Попыток не бросаю, но разочарование чувствуется (не в языке программирования, а в многопоточности). Я не программист по образованию, я - самоучка, все изучал сам и благодарен людям, которые посоветовали начать с VB6. Бросать писать на этом языке я не буду.
VB6 - язык, который позволяет сделать практически все (ну, кроме написания операционной системы - чем, кстати, оперируют часто противники VB6. Как будто написанием операционных систем только и занимаются все программисты). Мышление о скорости - тоже очень субъективный подход. Си-программисты привыкли не заботиться о оптимизации кода - это все делает компилятор. На VB6 это делать надо и делать это не так уж и сложно. В принципе, по моему мнению, VB6 способствует развитию именно СТИЛЯ правильного написания программ. Тут надо немного подумать (чем не занятие), а потом уже писать. Притом поддержка АПИ - это то, что надо. Си-программисты пользуются только АПИ, потому как средствами исключительно Си сделать ничего практически нельзя. В VB6 средствами языка без использования АПИ можно таки сделать очень многое: свой формат файла, рисовать и т. д. Конечно, лучше пользоваться АПИ, ено факт остается фактом. Я сносно знаю Си, но бросать VB6 не буду - это мой первый и ЛЮБИМЫЙ язык программирования.
VB.NET - это, по-моему, афера со стороны Майкрософт. Да, возможностей поболе, но практически все то же можно сделать на VB6. Плюс к тому, VB6 отлично справлялся с работой с БД, оставляяя всякие Си и Дельфи позади (тесты мы проводили на работе просто ради интереса). В VB.NEt с этим загон полный. Я не хочу на него переходитть, но прийдется. К сожалению... Разве что многопоточность встроенная - это единственное что радует, хотя отсутствие ее не самый критичный случай.
3.
Аноним
+1 / -0
Мне нравитсяМне не нравится
11 января 2006, 10:26:30
Lichno ya pishu na VB6 VB7 takie programki chto cishnikam i ne snilos :)
4.
Аноним
Мне нравитсяМне не нравится
17 октября 2005, 13:38:22
VB .net мне нравится больше потому что не нужно теперь заучивать тысячи комманд.. допустим все команды для графики засунуты в пространство system.graphics и если что надо можно открыть справку по этому пространству и все найти
5.
Аноним
+0 / -1
Мне нравитсяМне не нравится
16 сентября 2005, 15:34:47
Ха! И кто это сказал, что скажем в VB6 нельзя было использовать многопоточность? ИЛИ WinAPI не существует?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог