dEEp |
Отправлено: 26.06.2005, 10:18 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 69
|
Скажите, как используют WinAPI в Builder'e?
Может пример приведёте?
Назовите те функции, которые могут быть полезными в программировании, или же киньте ссылки.
Thanks...
|
|
olegenty |
Отправлено: 26.06.2005, 10:27 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
Использованы и полезны могут быть практически все функции, это зависит от решаемой задачи. А ссылку... ну на:
Help->Windows SDK
|
|
Doga |
Отправлено: 26.06.2005, 14:13 |
|
Мастер участка
Группа: Участник
Сообщений: 575
|
А лучше установить последнюю версию MSDN — Windows SDK в BCB оставляет желать лучшего
|
|
Sl@Sh |
Отправлено: 29.06.2005, 10:22 |
|
Мастер участка
Группа: Участник
Сообщений: 383
|
В билдере не все функции апишные реализрваны. Чтобы увидеть все просмотрите экспортируемые библиотечные функции библиотек WinAPI. Правда это туповатый вариант. Хелп всегда лучше.
А в билдере конечно меньше чем у мсдн хелп, но есть куча функция которые вообще почти не используются.
И вообще исходники VCL на паскале гляньте. VCL что-то вроде оболочки, основаной на том же WinAPI.
|
|
esh |
Отправлено: 29.06.2005, 15:03 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 71
|
QUOTE | В билдере не все функции апишные реализрваны. |
А как они должны быть реализованы в Билдере? Они уже реализованы в стандартных библиотеках Винды, в .h Билдера они только описаны, я не припомню, чтобы в Билдере не была описана какая-либо функция, возможно я просто забыл, т.к. это исправляется за пару минут.
CODE | А в билдере конечно меньше чем у мсдн хелп, но есть куча функция которые вообще почти не используются. |
Даже те функции, которые используются очень часто, в MSDN описаны лучше, MSDN у меня от Апреля 2003.
А например AWE в хэлпе Билдера вообще не описана, согласен, что используется довольно редко, но все-же используется, а без хэлпа там не разобраться.
CODE | И вообще исходники VCL на паскале гляньте. VCL что-то вроде оболочки, основаной на том же WinAPI. |
Конечно, а разве есть другие приемлемые варианты? |
|
Sl@Sh |
Отправлено: 02.07.2005, 02:21 |
|
Мастер участка
Группа: Участник
Сообщений: 383
|
QUOTE (esh @ 29/06/2005, 15:03) | А как они должны быть реализованы в Билдере? Они уже реализованы в стандартных библиотеках Винды, в .h Билдера они только описаны, я не припомню, чтобы в Билдере не была описана какая-либо функция, возможно я просто забыл, т.к. это исправляется за пару минут. |
1) Не придирайтесь к словам. Я как раз и имел ввиду описаны.
2) Все доступные нам в Билдере апишные функции хранятся в import32.lib и вот в ней объявлены далеко не все из возможных функций.
3) Даже МСДН не всё публикует и описывает. Кое-что остаётся недокументированым.
|
|
esh |
Отправлено: 02.07.2005, 14:15 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 71
|
QUOTE | 2) Все доступные нам в Билдере апишные функции хранятся в import32.lib и вот в ней объявлены далеко не все из возможных функций. |
Давай пример , думаю что можно легко исправить.
Я не издеваюсь, назови функцию, которая объявлена в стандартных заголовках MSVC, но ее нет в Билдере, просто очень интересно. Вроде постоянно API использую, а функций таких не помню. Правда 90% dll я пишу в MSVC, может в них и были эти функции...
Отредактировано esh — 02/07/2005, 14:52 |
|
Sl@Sh |
Отправлено: 03.07.2005, 02:39 |
|
Мастер участка
Группа: Участник
Сообщений: 383
|
Точно издеваетесь... Ну я вам вот что скажу
1) С примером сложновато т.к. я всегда использовал функции доступные в Билдере, а о недоступных знаю чисто теоретически
2) Вот специально для вас нашел книжку, где я это когда-то прочитал.
Называется она "Borland C++Builder 6 руководство разработчика" (Холингворт, Сворт, Кэшмэн, Густавсон). Может где увидите, не поленитесь заглянуть на раздел про WinAPI.
3) Я просто уверен, что вы даже из import32.lib далеко не всё использовали
|
|
Sl@Sh |
Отправлено: 03.07.2005, 22:08 |
|
Мастер участка
Группа: Участник
Сообщений: 383
|
Вот вам пример :
CODE |
typedef int (CALLBACK* lpfn)(int, int);
lpfn serv_func;
HINSTANCE hDLL = LoadLibrary("kernel32.dll");
if (hDLL)
{
serv_func = (lpfn)GetProcAddress(hDLL, "RegisterServiceProcess");
if (serv_func) serv_func(GetCurrentProcessId(), 1);
}
|
Я его использовал чтобы замоскировать программу под win 98.
А теперь о функции RegisterServiceProcess :
1) В справке Win SDK билдера она есть
2) В import32.lib (и вообще везде) её НЕТ
Теперь верите ?
|
|
esh |
Отправлено: 04.07.2005, 00:23 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 71
|
QUOTE | 3) Я просто уверен, что вы даже из import32.lib далеко не всё использовали |
Не все, только те, которые мне были нужны.
QUOTE | Вот вам пример :
typedef int (CALLBACK* lpfn)(int, int);
lpfn serv_func;
HINSTANCE hDLL = LoadLibrary("kernel32.dll");
if (hDLL)
{
serv_func = (lpfn)GetProcAddress(hDLL, "RegisterServiceProcess");
if (serv_func) serv_func(GetCurrentProcessId(), 1);
} |
Под примером я понимал имя этой функции. Динамически загрузить библиотеку я и сам могу, поэтому
пример хороший, но мне нужен другой.
QUOTE | А теперь о функции RegisterServiceProcess :
1) В справке Win SDK билдера она есть
2) В import32.lib (и вообще везде) её НЕТ
Теперь верите ? |
Не убедил, эту функцию я знаю. В Visual Studio 2003 и в MSDN (тоже 2003 года) о RegisterServiceProcess нет упоминаний, т.к.
этой функции нет в Win2000/XP, а скорее всего и в любой Винде на основе NT. Это очень плохой пример!
Мне нужен пример НОРМАЛЬНОЙ функции API, которая есть в Win2k/XP, объявлена в MSVC, но ее нет в 6-м Билдере, я таких не помню.
|
|
Sl@Sh |
Отправлено: 04.07.2005, 02:49 |
|
Мастер участка
Группа: Участник
Сообщений: 383
|
QUOTE (esh @ 04/07/2005, 00:23) | Не убедил, эту функцию я знаю. В Visual Studio 2003 и в MSDN (тоже 2003 года) о RegisterServiceProcess нет упоминаний, т.к.
этой функции нет в Win2000/XP, а скорее всего и в любой Винде на основе NT. Это очень плохой пример!
Мне нужен пример НОРМАЛЬНОЙ функции API, которая есть в Win2k/XP, объявлена в MSVC, но ее нет в 6-м Билдере, я таких не помню. |
Во-первых то что вам нужно ищите сами. Мне надоело вам что-то доказывать. Пример нормальный т.к. Билдер расчитан не только на линейку NT. И как я уже говорил эта функция там не добавлена.
Во-вторых вы начали крутить в другую сторону. Я вам про MSVC говорил что-то ? Да и потом я например привык доверять умным книжкам т.к. их пишут гораздо более опытные и знающие люди чем я.
P.S.: АПИ функций существует> 10 000. Может кто из других участников может вам сказать пример необходимой вам функции.
P.P.S.: Сама Microsoft, имхо, не о всех функциях пишет. Обычно всегда есть недокументированые функции.
|
|