Архив за месяц: Август 2006

Наиболее частые заблуждения насчет опции /3GB.

Перевод с блога The Old New Thing. Оригинал здесь Довольно просто объяснить, что эта опция делает, однако люди часто неправильно ее понимают. Опция /3Gb изменяет способ разделения 4-гигабайтного адресного пространства. Вместо разделения на 2Гб адресного пространства для режима пользователя и … Читать далее

Рубрика: память | Оставить комментарий

Почему я должен заботиться об использовании DLL библиотек в своей системе?

Перевод с блога Larry Osterman’s WebLog.  Недавно я отмечал, что, когда я положил новую версию winmm.dll к себе на компьютер, мне пришлось перезагрузить его. Вы можете спросить: почему надо было перезагружать компьютер, разве недостаточно просто перезапустить приложение или сервис, которые … Читать далее

Рубрика: DLL | Оставить комментарий

Эффективность импорта по номеру, при импортировании по имени.

Перевод с блога The Old New Thing. Оригинал здесь. Один из читателей обратил внимание, что импорт по номеру немного быстрее чем импорт по имени, хотя и не намного. Но даже если это крошечное ускорение играет для вас роль, вы можете … Читать далее

Рубрика: DLL | Оставить комментарий

Есть причина, почему декорированы имена в библиотеке импорта.

Перевод с блога The Old New Thing. Оригинал здесь. Когда я писал, что символические имена в таблице импортируемых функций имеют вид __imp__FunctionName, это было не совсем верно. В реальности все немного запутаннее и причина путаницы – декорирование имен функций. Когда … Читать далее

Рубрика: DLL | Оставить комментарий

Что произойдет в случае некорректного использования директивы dllimport?

Перевод с блога The Old New Thing. Оригинал здесь. Теперь мы знаем, что означает директива dllimport, но что если она используется неправильно? Если вы забудете объявить функцию при помощи dllimport, тогда вы фактически заставляете компилятор вести себя наивным способом, когда … Читать далее

Рубрика: DLL | Оставить комментарий

Ситуации, когда должны создаваться функции-заглушки.

Перевод с блога The Old New Thing. Оригинал здесь. Я отмечал в прошлый раз, что вы можете создать ситуации, которые приведут к созданию заглушек для импортируемых функций. Например, если вы объявили глобальный указатель на функцию: DWORD (WINAPI *g_pGetVersion)() = GetVersion; … Читать далее

Рубрика: DLL | Оставить комментарий

Как более умный компилятор вызывает импортируемую функцию.

Перевод с блога The Old New Thing. Оригинал здесь. Если функция объявлена с директивой dllimport, это указывает компилятору Visual Studio С/C++ на то, что данная функция является импортируемой, а не обычной внешней (external) функцией. Обладая этой дополнительной информацией, компилятор генерирует … Читать далее

Рубрика: DLL | Оставить комментарий