Здравствуйте Андрей, Вы писали:
А>Здравствуйте old Dutchman, Вы писали:
А>skip
А>Вообще-то в User32.dll полно таких функций и к тому же документированных (см., например CharLower), так что не стоит огород городить
Ты не прав. В ntdll.dll содержится огромное кол-во прекрасных функций. Там практически вся CRT. Я даже пытался сравнивать код из msvcrt.dll.
Я не виду практической ценности в использовании функций ntdll.dll вместо msvcrt.dll, хотя полазить, посмотреть, конечно, очень было интересно.
Здравствуйте old Dutchman, Вы писали:
OD>Эта дрянь скорее всего будет медленно работать, но для тех задач, где необходимо отказаться от CRT и всякой дрянь вполне сгодится
Вызов функции tolower выполняется за время от 600 до 1100 тактов. Что есть довольно много.
Для тесктовой работы не годится, но вполне годится для того, чтоб разобрать командную строку
skip
А>Ты не прав. В ntdll.dll содержится огромное кол-во прекрасных функций. Там практически вся CRT. Я даже пытался сравнивать код из msvcrt.dll.
Ну, содержится, и дальше что? Сегодня они там есть, завтра — нет. Никто не гарантирует, что в следующей версии Windows все будет точно также как сейчас. А>Я не виду практической ценности в использовании функций ntdll.dll вместо msvcrt.dll, хотя полазить, посмотреть, конечно, очень было интересно.
Здесь я с тобой отчасти согласен. Если ты пишешь большой продукт, состоящий из кучи компонентов, то лишняя пара-тройка мегов роли не играет, а если ты пишешь мааааленькую утилитку, совсем не хочется тащить за собой половину CRT из-за двух-трех функций. Но для обхода этих трудностей есть более элегантные пути, чем использование недокументированных функций из NTDLL и иже с ней.
хъ
А>Ну, содержится, и дальше что? Сегодня они там есть, завтра — нет. Никто не гарантирует, что в следующей версии Windows все будет точно также как сейчас.
[]
ntdll.dll такая же библиотека как и все остальные. Просто не документированная. Ею можно пользоваться совершенно спокойно. MS наврядли будет менять в ней что-нибудь, т.к. это вызвало бы перепись огромных масс кода.
Здравствуйте Андрей, Вы писали:
А>Вообще-то в User32.dll полно таких функций и к тому же документированных (см., например CharLower), так что не стоит огород городить
Да дело не в CharLower. Мне нужны ВСЕ функции строковые !
Задача — написать на С программу под NT размером в 10К максимум.
Здравствуйте Алекс, Вы писали:
А>>Вообще-то в User32.dll полно таких функций и к тому же документированных (см., например CharLower), так что не стоит огород городить
А>Ты не прав. В ntdll.dll содержится огромное кол-во прекрасных функций. Там практически вся CRT. Я даже пытался сравнивать код из msvcrt.dll.
А>Я не виду практической ценности в использовании функций ntdll.dll вместо msvcrt.dll, хотя полазить, посмотреть, конечно, очень было интересно.
Здравствуйте Андрей, Вы писали:
OD>>Задача — написать на С программу под NT размером в 10К максимум.
А>Как вариант (copyright VladD2) — использовать Automation API
skip
А>>Как вариант (copyright VladD2) — использовать Automation API
OD>А это как ?
А это через VARIANT (типа VariantChangeType и т.п.) — геморрой тот еще и тоже довольно медленно, зато избавишься от CRT
Но я лично рассматриваю это как шутку
Здравствуйте Алекс, Вы писали:
А>Здравствуйте old Dutchman, Вы писали:
А>хъ
OD>>А на NT40 без сервис паков есть такое ? Я просто не знаю, и нет возможности проверить
А>90% что есть.
А как насчет ее версии? Никто ведь не гарантирует, что там не старая версия — так что лучше ее с собой таскать
Здравствуйте Алекс, Вы писали:
OD>>А на NT40 без сервис паков есть такое ? Я просто не знаю, и нет возможности проверить
А>90% что есть.
Было бы 100 — я бы не потел над этим
Здравствуйте Андрей, Вы писали:
OD>>>А на NT40 без сервис паков есть такое ? Я просто не знаю, и нет возможности проверить
А>>90% что есть.
А>А как насчет ее версии? Никто ведь не гарантирует, что там не старая версия — так что лучше ее с собой таскать
skip
А>>А как насчет ее версии? Никто ведь не гарантирует, что там не старая версия — так что лучше ее с собой таскать
OD>!!! Опаньки... OD>Мне это не надо !
Здравствуйте Андрей, Вы писали:
А>А это через VARIANT (типа VariantChangeType и т.п.) — геморрой тот еще и тоже довольно медленно, зато избавишься от CRT А>Но я лично рассматриваю это как шутку
А>А лучше почитай статью Виталия Брусенцева
OD>Эта дрянь скорее всего будет медленно работать, но для тех задач, где необходимо отказаться от CRT и всякой дрянь вполне сгодится
Тогда тебе прямая дорога к книге Свен Шрайбер "Недокументированные возможности Windows 2000" — к стати о возможности экспорта этих функций там написанно
#pragma comment(linker,"defaultlib:ntdll.lib")
к статит в этой книге есть специальный заголовочный фал для этого w2k_def.h давай мыло вышлю, если будушь юзать его в режиме user-mode ставь
#define _USER_MODE