SoftIce

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

SoftIce

Сообщение Antonariy » 27.11.2006 (Пн) 11:12

Как юзать сабж?
Пишу TAPI-сервер для мини-атс LG LDK-100 используя апи. Как ни бьюсь, не получается инициализировать TAPI так, чтобы в программу приходили события. А еще у меня есть прога tapicaps.exe, которая показывает всю информацию о TAPI на компе и может трассировать события. Естественно, она без проблем отлавливает все события с атс. Задача: выяснить с какими параметрами она вызывает функцию lineInitializeEx. Нужны пошаговые инструкции.
Код: Выделить всё
Private Declare Function lineInitializeEx Lib "TAPI32.DLL" Alias "lineInitializeExA" (ByRef lphLineApp As Long, ByVal hInstance As Long, ByVal lpfnCallback As Long, ByVal lpszFriendlyAppName As String, ByRef lpdwNumDevs As Long, ByRef lpdwAPIVersion As Long, ByRef lpLineInitializeExParams As LINEINITIALIZEEXPARAMS) As Long

Private Type LINEINITIALIZEEXPARAMS
    dwTotalSize As Long
    dwNeededSize As Long
    dwUsedSize As Long
    dwOptions As Long
    hEvent As Long 'union hEvent and Completion port
    dwCompletionKey As Long
End Type
ЗЫ: У меня софтайс версии 4.01.
Последний раз редактировалось Antonariy 27.11.2006 (Пн) 11:16, всего редактировалось 1 раз.
Лучший способ понять что-то самому — объяснить это другому.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 27.11.2006 (Пн) 11:14

И еще, правильно ли описан тип LINEINITIALIZEEXPARAMS? Вот оригинал:
Код: Выделить всё
typedef struct lineinitializeexparams_tag {
DWORD  dwTotalSize;
DWORD  dwNeededSize;
DWORD  dwUsedSize;
DWORD  dwOptions;
union
{
  HANDLE  hEvent;
  HANDLE  hCompletionPort;
} Handles;
DWORD  dwCompletionKey;
} LINEINITIALIZEEXPARAMS, FAR *LPLINEINITIALIZEEXPARAMS;
Лучший способ понять что-то самому — объяснить это другому.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.11.2006 (Пн) 12:29

Структура объявлена правильно.

SoftIce... наверное, тебе надо подгрузить символьные имена функций, чтобы потом брейкпойнты ставить. Из очень старого файла к SoftIce версии 2.0:
A. КАК В SOFTICE ЗАГРУЖАТЬ СИМВОЛЬНЫЕ ИМЕНА
===========================================
Чтобы проверить, загрузил ли SoftICE символьные имена GetWindowText, Вы должны войти в отладчик нажатием на клавиши Ctrl-D и в окне команд ввести следующее:

:exp getwindowtext

Если Вы не получили списка всех функций GetWindowText, Вам нужно отредактировать файл \SIW95\WINICE.DAT, удалив символ комментария (';') перед одной из строчек 'exp=', которые следуют за текстом: "Examples of export symbols that can be included for chicago" в конце этого файла.
Вы можете удалить комментарии из всех строчек 'exp=' или сохранить немножко памяти, раскомментировав только строчки с файлами kernel32.dll, user32.dll и gdi32.dll, которые являются самыми важными. После этого Вы должны перегрузить компьютер.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 54

    TopList