• Microsoft Data Access Objects
• Microsoft HTML Help
• Microsoft Data Access Components (MDAC)
• Microsoft Scripting
• Microsoft OLE Automation
Также внесены исправления, необходимые для новых версий Office, SQL Server и Windows, включая Internet Explorer.
К сожалению, SP4 не включает самые последние заголовки и библиотеки для Internet Explorer5 или Windows 2000. Их нужно загружать отдельно в виде SDK.
Visual Studio Service Pack 4 занимает около 130Мб и доступен для свободного скачивания на сайте Microsoft по адресу http://msdn.microsoft.com/vstudio/sp/vs6sp4(13 файлов, приблизительно по 10 Мб каждый).
Имеется возможность обновить только некоторые продукты, например Visual Basic. Для Visual C++, однако, придется скачивать полную версию. Или подождать, пока она появится на пиратских CD.
ОБРАТНАЯ СВЯЗЬ
Из входящей почты
Публикация "WinAPI: Не запутайтесь в типах", вышедшая в предыдущем выпуске (и которая, кстати, будет продолжена в следующем) вызвала некоторый резонанс из-за допущенных там двух неточностей.
Здравствуйте, Алекс!
Встретил в Вашей рассылке "Программирование на Visual C++" за No.5 следующее утверждение:
"Кстати, имейте в виду, что описатель PASCAL и pascal – это то же самое, что и WINAPI. Но этот описатель является устаревшим, оставлен лишь для совместимости, и Microsoft рекомендует повсеместно использовать вместо него WINAPI."
Это распространенное мнение, которое вызвано переходом Microsoft с pascal на stdcall при переходе с Win16 на Win32. При этом Microsoft в MSDN утверждает, что: "Use WINAPI where you previously used PASCAL or far pascal." Но это означает всего лишь то, что стандартный способ вызова API функций изменился, а не то, что pascal эквивалентен stdcall. Проиллюстрируем это первоисточниками.
MSDN:
"The stdcall calling convention is used to call Win32 API functions. Argument-passing order Right to left. Argument-passing convention By value, unless a pointer or reference type is passed. Stack-maintenance responsibility Called function pops its own arguments from the stack. "
Borland C++ Builder Help:
"In addition, pascal declares Pascal-style parameter-passing conventions when applied to a function header (parameters pushed left to right; the called function cleans up the stack)."
Справка от Борландовского продукта в последнем случае выбрана потому, что MSDN вообще умалчивает о том, кто такой этот pascal, ограничиваясь тем, что он is now obsolete. Из вышеприведенных выдержек мы можем видеть, что stdcall отличается от pascal порядком передачи параметров. И просто так подменять один способ другим нельзя. Это легко продемонстрировать, попытавшись вызвать функцию с модификатором pascal из Visual Basic. Access Violation Вам гарантирован.
Sergey Shapovalov Software Security Belarus
Mea culpa. Действительно, иногда не вредно вспоминать, что кроме MSDN существует кое-что еще. Спасибо, Сергей!
Привет
"Использование соглашения сdecl вместо stdcall иногда оправданно, но приводит к увеличению размера>исполняемого модуля из-за того, что имя функции декорируется в этих соглашениях по-разному."
Не понял я этой фразы… cdecl делает больше код потому что надо стек чистить каждый раз после вызова рутины, а не изза decoration. Names decoration влияет только на представление имён до линкера, в выходной код они не включаются.
Причём, cdecl – стандартный тип вызова для C/C++ изза возможности использования varargs, в то время как в stdcall вызове такое невозможно. Как правило, stdcall юзают в dll (в Win32API в том числе) и для присобачивания чужих lib, собранных с использованием этого типа вызова.
Ivan Nevraev
В самом деле, декорирование имени функции тут не причем. Благодарю Ивана за помощь. В дальнейшем буду стараться публиковать только перепроверенные данные.
А также напоминаю, что в следующем выпуске вас ожидает вторая часть этой публикации.
[…] Чтобы рассылка действительно не превращалась в дискуссионную группу, можно дать еще пару ссылочек. Вы уже упомянули news-группы. Можно посоветовать также еще один, правда англоязычный ресурс: http://codeguru.developer.com. Это один из (если не самый) крупнейших сайтов для разработчиков на C++ и большей своей частью на Visual C++.
Также там есть discussion board: http://codeguru.developer.com/bbs/wt/wwwthreads.pl, где можно задать любой интересующий вопрос (естественно на английском языке). Обычно ответ приходит довольно быстро. Причем это либо исходный код, либо ссылка на что-либо подобное. Короче очень рекомендую.
Andrew, Gromyko ( gao2000@iname.com)
Андрей, кстати, уже не в первый раз пишет. Ссылки хорошие – сам на CodeGuru захожу очень часто. Так что уверен, многим эта информация придется кстати.
Да, если вы знаете какие-нибудь стоящие внимания ресурсы по VC – присылайте ссылочки!
Большое спасибо за рассылку! Большой ее положительной спирали! ;) (Bill Gates "The Road Ahead") [ Может, "ей"?… – AJ]
Как насчет новости от Microsoft? Я имею в виду http://msdn.microsoft.com/vstudio/nextgen/technology/csharpintro.asp.
C# (pronounced "C sharp").
Читать дальше