Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: void** to VB? Добавлено: 17.06.07 18:47  

Автор вопроса:  Telishev S | Web-сайт: tsa-molotoff.jino-net.ru
Кто нибудь подскажет как реализовать данное преобразование(а вернее передача массива указателей из С в ВБ)

Ответить

  Ответы Всего ответов: 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-сайт: tsa-molotoff.jino-net.ru
 Профиль | | #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-сайт: sharpc.livejournal.com
 Профиль | | #7
Добавлено: 22.06.07 14:04
Почему это?

Ответить

Номер ответа: 8
Автор ответа:
 Telishev S



Вопросов: 11
Ответов: 44
 Web-сайт: tsa-molotoff.jino-net.ru
 Профиль | | #8
Добавлено: 22.06.07 17:03
Если приспичит, так приспичит...
Все равно в ВБ поинтеров нету и врят ли они будут...

библа на Си требует типа такой функции:
void* function(int k, void** arg)

И соответственно аргументы "трезвыми" методами не извлекаются в ВБ. ;)

Ответить

Номер ответа: 9
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #9
Добавлено: 23.06.07 17:43
Как встроенного элемента языка, может, и нет. Но работать с ними от этого невозможно не становится.

Ответить

Номер ответа: 10
Автор ответа:
 Telishev S



Вопросов: 11
Ответов: 44
 Web-сайт: tsa-molotoff.jino-net.ru
 Профиль | | #10
Добавлено: 23.06.07 20:20
не понял суть высказывания... <-/

Ответить

Номер ответа: 11
Автор ответа:
 Telishev S



Вопросов: 11
Ответов: 44
 Web-сайт: tsa-molotoff.jino-net.ru
 Профиль | | #11
Добавлено: 23.06.07 20:22
все же сделал, что не нравится то, если есть метод менее топорный - покажите, только вот все равно массива из разномастных элементов в вб нету, особенно учитывая проблемы с строками и юникодом...

Ответить

Номер ответа: 12
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #12 Добавлено: 23.06.07 21:49
Почему это?

Ну как почему? По качану :) Если в си есть указатели как встроенный элемент языка, то в вб всякое шаманство с strptr/varptr/ptrptr/getmem/putmem.. etc не очень удобно на самом деле...

особенно учитывая проблемы с строками и юникодом...
Ну это не большая проблема, преобразовать в/из юникод можно одной апи функцией...

void* function(int k, void** arg)
Это зависит от того как дальше работают с arg.

Ответить

Номер ответа: 13
Автор ответа:
 Telishev S



Вопросов: 11
Ответов: 44
 Web-сайт: tsa-molotoff.jino-net.ru
 Профиль | | #13
Добавлено: 23.06.07 21:55

особенно учитывая проблемы с строками и юникодом...
Ну это не большая проблема, преобразовать в/из юникод можно одной апи функцией...

ну это мягко говоря неудобно - при написании библы возникают мелочные юникодные фигни.

с аргом - извлекаем значения, и пользуемся ими.

Ответить

Номер ответа: 14
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #14
Добавлено: 24.06.07 00:42
то в вб всякое шаманство с strptr/varptr/ptrptr/getmem/putmem.. etc не очень удобно на самом деле...

Немного опыта в сочетании со знанием азов ассемблера — и такие проблемы перестанут тебя беспокоить.

Ответить

Номер ответа: 15
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #15 Добавлено: 24.06.07 01:47
Ну есть немного опыта, и немного знания ассемблера.. что теперь удобнее стало? :\

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам