Страница: 1 | 2 |
Вопрос: void** to VB?
Добавлено: 17.06.07 18:47
Автор вопроса: Telishev S | Web-сайт:
Кто нибудь подскажет как реализовать данное преобразование(а вернее передача массива указателей из С в ВБ)
Ответы
Всего ответов: 27
Номер ответа: 1
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #1
Добавлено: 17.06.07 20:37
А причём тут воид? Думаю копимемеори поможет, вместе с указателем на массив, размер ешё передавать.. redim до нужного размера, и копимемори
Номер ответа: 2
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #2
Добавлено: 18.06.07 08:18
Заменить симолы на символы...
Ну напеши прогу на VB для конвертации кода.
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 18.06.07 14:24
чё-чё? чё на чё заменить? кого напЕсать?
Номер ответа: 4
Автор ответа:
Telishev S
Вопросов: 11
Ответов: 44
Web-сайт:
Профиль | | #4
Добавлено: 19.06.07 15:58
Все сделано уже, можете не спорить что делать...
Только вот со строками геморно было, но работает..
slen = lenofst(pPtr)
Dim sMas() As Byte
ReDim sMas(slen)
tStrng = String(slen, 0)
CopyMemory ByVal VarPtr(sMas(0)), ByVal pPtr, UBound(sMas)
CopyMemory ByVal StrPtr(tStrng), ByVal pPtr, slen
tStrng = StrConv(tStrng, vbUnicode)
tStrng = Left$(tStrng, slen)
Номер ответа: 5
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #5
Добавлено: 20.06.07 12:23
Бредовая тема. Аффтар не догоняет указатели, они быстрее
Номер ответа: 6
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #6
Добавлено: 21.06.07 23:27
Там мож и к лучшему, бо в вб работать с массивом через указатели можно только не в трезвом состоянии, иначе мозк пухнит
Номер ответа: 7
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #7
Добавлено: 22.06.07 14:04
Почему это?
Номер ответа: 8
Автор ответа:
Telishev S
Вопросов: 11
Ответов: 44
Web-сайт:
Профиль | | #8
Добавлено: 22.06.07 17:03
Если приспичит, так приспичит...
Все равно в ВБ поинтеров нету и врят ли они будут...
библа на Си требует типа такой функции:
void* function(int k, void** arg)
И соответственно аргументы "трезвыми" методами не извлекаются в ВБ.
Номер ответа: 9
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #9
Добавлено: 23.06.07 17:43
Как встроенного элемента языка, может, и нет. Но работать с ними от этого невозможно не становится.
Номер ответа: 10
Автор ответа:
Telishev S
Вопросов: 11
Ответов: 44
Web-сайт:
Профиль | | #10
Добавлено: 23.06.07 20:20
не понял суть высказывания... <-/
Номер ответа: 11
Автор ответа:
Telishev S
Вопросов: 11
Ответов: 44
Web-сайт:
Профиль | | #11
Добавлено: 23.06.07 20:22
все же сделал, что не нравится то, если есть метод менее топорный - покажите, только вот все равно массива из разномастных элементов в вб нету, особенно учитывая проблемы с строками и юникодом...
Номер ответа: 12
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #12
Добавлено: 23.06.07 21:49
Ну как почему? По качану Если в си есть указатели как встроенный элемент языка, то в вб всякое шаманство с strptr/varptr/ptrptr/getmem/putmem.. etc не очень удобно на самом деле...
Номер ответа: 13
Автор ответа:
Telishev S
Вопросов: 11
Ответов: 44
Web-сайт:
Профиль | | #13
Добавлено: 23.06.07 21:55
особенно учитывая проблемы с строками и юникодом...
Ну это не большая проблема, преобразовать в/из юникод можно одной апи функцией...
ну это мягко говоря неудобно - при написании библы возникают мелочные юникодные фигни.
с аргом - извлекаем значения, и пользуемся ими.
Номер ответа: 14
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #14
Добавлено: 24.06.07 00:42
Немного опыта в сочетании со знанием азов ассемблера — и такие проблемы перестанут тебя беспокоить.
Номер ответа: 15
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #15
Добавлено: 24.06.07 01:47
Ну есть немного опыта, и немного знания ассемблера.. что теперь удобнее стало? :\