Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вызов функций win32 API / 15 сообщений из 15, страница 1 из 1
28.09.2004, 15:05
    #32714899
lezah
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов функций win32 API
Мне необходимо вызвать следующие функции для определения модемов, установленных в системе.

LONG lineInitialize(
LPHLINEAPP lphLineApp,
HINSTANCE hInstance,
LINECALLBACK lpfnCallback,
LPCSTR lpszAppName,
LPDWORD lpdwNumDevs
);

LONG lineGetDevCaps(
HLINEAPP hLineApp,
DWORD dwDeviceID,
DWORD dwAPIVersion,
DWORD dwExtVersion,
LPLINEDEVCAPS lpLineDevCaps
);

Проблема заключается в использовании структур. Непонятно, как их передавать, объявлять и использовать.

Если кто-нибудь знает, как объявить эти функции в фоксе, то, пожалуйста, помогите. Буду признателен.
...
Рейтинг: 0 / 0
28.09.2004, 15:08
    #32714914
Гость_xxx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов функций win32 API
Вопрос понял, подожди чуток, вышлю FLL, в фоксе с этим бороться бэсполэзно. Он канэшно крут в базах, но с системой не дуржит :))
...
Рейтинг: 0 / 0
28.09.2004, 15:52
    #32715024
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов функций win32 API
...
Рейтинг: 0 / 0
28.09.2004, 15:57
    #32715038
Гость_xxx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов функций win32 API
Владимир, Вы конечно эрудированный человек, но Вы сами пробовали что-то реализовать из того на что дали ссылку .. хммм, даже в течении неделек так этак 2-х ?
...
Рейтинг: 0 / 0
28.09.2004, 16:08
    #32715072
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов функций win32 API
Если Вы не заметили, то по приведенной ссылке в верхнем правом углу есть ссылка на оригинал статьи и написанный класс для конвертации.

Согласен. Класс имеет недостатки. Но в большинстве случаев этого хватает.
Опять же согласен, что формировать символьную строку-стркутуру - очень утомительно.

Если же Вы даете свою собственную закрытую библиотеку, то к Вам будет ряд вопросов:

Вы ручаетесь за свою библиотеку FLL? Она будет безглючно работать при любых условиях? А если надо будет внести в нее изменения - будете вносить по первому требованию?
...
Рейтинг: 0 / 0
28.09.2004, 16:14
    #32715083
Гость_xxx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов функций win32 API
Я по жизни за базар отвечаю.
...
Рейтинг: 0 / 0
28.09.2004, 16:20
    #32715098
Вызов функций win32 API
Сложного особо ничего нет, но нужно иметь полный MSDN, включащий в себя SDK и справку по VC.
Структура формируется как строка, в которую последовательно помещаются необходимые значения. Найдите в MSDN описание необходимой функции, так увидите ссылки на структуры. В функции lineGetDevCaps используется указатель на структуру LPLINEDEVCAPS. Открываете справку по этой структуре и видите, что она имеет вложенные структуры. Вычисляете полный размер необходимой памяти для структуры в байтах и создаёте заполненную нулями строковую переменную необходимой длины, например, при помощи REPLICATE.
Для преобразования целых чисел в DWORD я использую WinApi функцию RtlMoveMemory, которая, в частности, делает копию INTEGER в строку из 4-х байтов.
Объявление функции lineGetDevCaps на VFP выглядит так:

declare long lineGetDevCaps in Win32 long, long, long, long, string @

Последний аргумент - сформированная вами строка.
...
Рейтинг: 0 / 0
28.09.2004, 16:21
    #32715099
Гость_xxx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов функций win32 API
Вообще-то - это ТAPI, это для непосвященных, а фокс, мой любимый фокс, никак не умеет работать со структурами данными вложенноси больше 2. А то на что Вы дали ссылку - это бутафория чистой воды.
Готов поспорить с аргумаентами :) "Кто на новенько" :))
...
Рейтинг: 0 / 0
28.09.2004, 16:22
    #32715102
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов функций win32 API
я конечно дико извеняюсь
но меня почему то по ссылке в левом верхнем углу культурно отшивают
а хотелось бы взглянуть на класс
...
Рейтинг: 0 / 0
28.09.2004, 16:25
    #32715110
Вызов функций win32 API
Для структур, на которые ссылается структура верхнего уровня, действительно сложно. Для каждой вложенной структуры нужно выделять память и получать на неё указатели - см. SYS(2600)
...
Рейтинг: 0 / 0
28.09.2004, 16:57
    #32715197
Crip
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов функций win32 API
Видел очень неплохой класс для работы со структурами на universalthread.com. Там в качестве параметров для опредения формата вызова API передается просто строка в формате С++.
...
Рейтинг: 0 / 0
28.09.2004, 17:17
    #32715270
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов функций win32 API
leafя конечно дико извеняюсь
но меня почему то по ссылке в левом верхнем углу культурно отшивают
а хотелось бы взглянуть на класс
У меня дал нормально скачать класс, но он размером 192К здесь во вложения не положишь.
...
Рейтинг: 0 / 0
28.09.2004, 18:37
    #32715441
Гость_xxx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов функций win32 API
Ребята, что с вами ? :))
...
Рейтинг: 0 / 0
29.09.2004, 03:24
    #32715695
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов функций win32 API
2 Гость_xxx

Если там про struct.vcx или про clsheap.prg - то они РАБОТАЮТ со структурами
любой сложности/вложенности. Ессно что они сами выделяют память, формируют
указатели и т.п. Причём делают это на чистом АПИ а не через SYS(2600).
Совсем другое дело, что в спрашиваемой функции имеется Callback-параметр вот
с этим в фоксе напряженка, и без fll увы никак :(

Posted via ActualForum NNTP Server 1.0
...
Рейтинг: 0 / 0
29.09.2004, 16:46
    #32717196
BNap
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов функций win32 API
Неплохой on-line справочник по Win API (адаптированный под VFP): www.news2news.com/vfp/index.php.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вызов функций win32 API / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]