Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Определение идентификатора (API) / 25 сообщений из 36, страница 1 из 2
18.04.2006, 15:57
    #33673977
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
Уважаемые коллеги!
Случайно никто не использовал вызов

FUNCTION long RasEnumConnections(Any lpRasCon, long lpcb, long lpcConnections) LIBRARY "RasApi32.dll" ALIAS FOR RasEnumConnectionsA

Мне срочно надо получить параметр подключенного через RAS коннекта
long lpcConnections для использования в функции RASHangUp
Дело в том, что если вызов осуществлялся через систему, то указатель равен 0 и вызываеться через раз. А время поджимает

Если кто может помочь....
Pb 9.0.3 Build 8511
WinXP
...
Рейтинг: 0 / 0
18.04.2006, 16:35
    #33674086
Konstantin Goldobin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
Я пробовал так, как написано в последнем письме ветки
http://makeashorterlink.com/?E2AB169FC

Правда, на билдере 6.5 под виндовс 98.

--
With regards,
Konstantin Goldobin
http://www.vsi.ru/~kgold


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
18.04.2006, 16:49
    #33674131
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
Что - то не то, возвращает код 87
...
Рейтинг: 0 / 0
18.04.2006, 16:50
    #33674134
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
Структура наверное не та
Системы разные
Придется где-нибудь на MSDN полазить
Спасибо за поддержку
...
Рейтинг: 0 / 0
18.04.2006, 17:03
    #33674178
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
Ребята я наверное чего-то не допонимаю

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/rras/rras/rasconn.asp


Какая - же все-таки структура rasconn
...
Рейтинг: 0 / 0
18.04.2006, 17:31
    #33674302
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
...
Рейтинг: 0 / 0
18.04.2006, 17:37
    #33674331
Pasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
встречный вопрос
Ребята а как вы структуры в PB описываете?
а то я уже собирался поднять вопросик, как же всетаки к PB подключить С++ (а то спомощью мануала я так и не разобрался к сожалению)
...
Рейтинг: 0 / 0
18.04.2006, 17:45
    #33674368
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
Да знаю, что WINVER 0x0501
Код функции
long i
long ll_ret
RasConn lpRasConn[256]
long lpcb
long lpcConnections
Long hRasConn
//Set the structure's size
lpRasConn[1].dwSize = 412
lpcb = 256 * lpRasConn[1].dwSize
lpcConnections = 0

ll_ret = RasEnumConnections(lpRasConn[1], lpcb, lpcConnections)
If ll_ret = 0 Then
For i = 1 To lpcConnections
hRasConn = lpRasConn .hRasConn
//'Hang up

Next
End If
Структура
type rasconn from structure
ulong dwsize
ulong hRasConn
character szEntryName[257]
character szDeviceType[16]
character szDeviceName[129]
string szPhonebook
long dwSubEntry
end type

Все-равно возвращает код 87
...
Рейтинг: 0 / 0
18.04.2006, 17:49
    #33674382
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
Просто может кто знает

structure:typedef struct _RASCONN {DWORD dwSize;
HRASCONN hrasconn;
TCHAR szEntryName[RAS_MaxEntryName + 1];
#if (WINVER >= 0x400)
TCHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
TCHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
#endif
#if (WINVER >= 0x401)
TCHAR szPhonebook [ MAX_PATH ];
DWORD dwSubEntry;
#endif
#if (WINVER >= 0x500)
GUID guidEntry;#endif
#if (WINVER >= 0x501)
DWORD dwFlags;
LUID luid;
#endif} RASCONN ;
...
Рейтинг: 0 / 0
18.04.2006, 17:51
    #33674390
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
Как GUID и LUID сконвертить
Как string?
...
Рейтинг: 0 / 0
18.04.2006, 17:57
    #33674408
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
Нашел какой-то вариант, буду пробовать
http://home.iprimus.com.au/billmcc/PlatformVB/dun/rasenumconns.htm
...
Рейтинг: 0 / 0
18.04.2006, 18:18
    #33674500
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
явно обьявление ф-ции не правильное

из winapi help:

Код: plaintext
1.
2.
3.
4.
DWORD RasEnumConnections(
    LPRASCONN lprasconn,	// buffer to receive connections data
    LPDWORD lpcb,	// size in bytes of buffer
    LPDWORD lpcConnections	// number of connections written to buffer
   );

это значит обьявление должно быть примерно таким:
Код: plaintext
1.
FUNCTION long RasEnumConnections(ref MY_RASCON_STRUCT lpRasCon, ref long lpcb, ref long lpcConnections) LIBRARY "RasApi32.dll" ALIAS FOR RasEnumConnectionsA
...
Рейтинг: 0 / 0
20.04.2006, 08:53
    #33678102
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
Сейчас проверим
...
Рейтинг: 0 / 0
20.04.2006, 08:56
    #33678107
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
Дмитрий спасибо, не все, но работает
...
Рейтинг: 0 / 0
20.04.2006, 08:57
    #33678108
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
Если нужны объекты для RAS, пишите - мыло в профиле
...
Рейтинг: 0 / 0
12.05.2006, 15:21
    #33723260
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
Извините, что возвращаюсь к прежней теме
Программа готова, единственная странность
В собранном ехе-файле почему-то не происходит ретурн
long i
long ll_ret
RasConn lpRasConn[256]
long lpcb
long lpcConnections
Long hRasConn
lpRasConn[1].dwSize = 692
lpcb = 256 * lpRasConn[1].dwSize
lpcConnections = 0
ll_ret = RasEnumConnections(ref lpRasConn[1], ref lpcb, ref lpcConnections)
Messagebox('','2')
If ll_ret = 0 Then
For i = 1 To lpcConnections
hRasConn = lpRasConn .hRasConn
//'Hang up
il_RASCON = hRasConn
exit
//RasHangupA( hRasConn )
Next
israsconnect=true

return 1
End If

return 0

В скомпиленном просто повисает, возврата из функции не происходит
Есть у кого-нибудь какие соображения
Да забыл добавить - все это происходит если соединение инициировано из-вне
, т.е. не из самой программы
Если запускаешь RAS из программы все проходит без сучка и задоринки
...
Рейтинг: 0 / 0
12.05.2006, 17:31
    #33723748
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
Фил на тебя вся надежда может ты что новое выкопаешь
Самое прикольное видеть как в собранном файле теряется return
Может я вообще туплю
И ошибка исключительно pbvm выскакивает
Отрубать вроде отрубает, вообще как-то странно все происходит
Главное если пользуешься исключительно софтом - ок
иначе - вообще круговерть
Help me!!!!!!!!!!!! SOS me !!!!!!!!!!!!!!!!!!
Карьера под угрозой!!!!!!!!!
...
Рейтинг: 0 / 0
12.05.2006, 17:56
    #33723838
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
предположение:
если строишь "Machine code" то может "Pi code" может помочь
...
Рейтинг: 0 / 0
15.05.2006, 14:01
    #33727121
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
Без разницы. Пробовал и pbd. Результат тот-же
...
Рейтинг: 0 / 0
15.05.2006, 16:21
    #33727874
Oleg1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
spas2001Без разницы. Пробовал и pbd. Результат тот-же
Как вариант. Функции неверон передается область памяти, в которую она пишет. Из-за этого может быт перетерта нужная инфа.
...
Рейтинг: 0 / 0
19.05.2006, 10:40
    #33737749
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
Да а почему под отладчиком все путем?
Короче почему-то теряется указатель точки возврата
Только почему это происходит только при скомпиленном коде и только
если коннект инициирован из-вне
Хотя видно что идентификатор определяется верно
Можно конечно разрешить вызов только из программы и завершение вызова тоже
Просто некрасивое решение
...
Рейтинг: 0 / 0
19.05.2006, 10:57
    #33737821
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
Однозначно что-то с памятью

а как у тебя выглядит RasConn структура?
...
Рейтинг: 0 / 0
23.05.2006, 12:33
    #33744971
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
type rasconn from structure
ulong dwsize
ulong hRasConn
character szEntryName[257]
character szDeviceType[16]
character szDeviceName[129]
string szPhonebook
long dwSubEntry
end type

Еще вопрос lpRasConn[1].dwSize = 692 ????
Т.е. какой размер под один элемент структуры
...
Рейтинг: 0 / 0
23.05.2006, 16:19
    #33746144
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
из винхелпа:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
#define RAS_MaxEntryName       256 
#define RAS_MaxDeviceType      16 
#define RAS_MaxDeviceName      128 

RASCONNA
{
    DWORD    dwSize;
    HRASCONN hrasconn;
    CHAR     szEntryName[ RAS_MaxEntryName +  1  ];
    CHAR     szDeviceType[ RAS_MaxDeviceType +  1  ];
    CHAR     szDeviceName[ RAS_MaxDeviceName +  1  ];
    CHAR     szPhonebook [ MAX_PATH ];
    DWORD    dwSubEntry;
};

итого в ПБ

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    ulong    dwSize
    ulong    hrasconn
    char     szEntryName[  257  ]
    char     szDeviceType[  17  ]
    CHAR     szDeviceName[  129  ]
    CHAR     szPhonebook [  260  ]
    ulong    dwSubEntry

4+4+257+17+129+260+4=675 bytes
...
Рейтинг: 0 / 0
24.05.2006, 09:33
    #33747357
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение идентификатора (API)
При 675 вылазит ошибка 632 (маленький буфер)
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Определение идентификатора (API) / 25 сообщений из 36, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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