Результатов поиска: 18: samap

Вернуться к расширенному поиску

Re: Как отключить проверку границ массивов в IDE

... традиционно не принимает размер блока, а значит освободит именно тот блок, какой был выделен, ни байтом больше. Другое дело, что функции SaMap и SaUnmap (а именно так я назвал функции в своих кирпичах , отвечающие за проецирование SAFEARRAY-массива на произвольный регион памяти) обычно ...
Хакер
16.06.2016 (Чт) 20:11
 
Форум: Visual Basic 1–6
Тема: Как отключить проверку границ массивов в IDE
Ответы: 3
Просмотры: 2382

Re: Массив как указатель

В кирпиче есть и фиксированные, и динамический. К тому же, SaMap изначально нацелена прежде всего на динамические массивы (размер в параметре по умолчанию - максимально возможный) - эта тема же даже с вопроса по этому поводу начиналась. Бейсик не дал ...
arthur2
07.03.2014 (Пт) 5:19
 
Форум: Visual Basic 1–6
Тема: Массив как указатель
Ответы: 49
Просмотры: 19030

Re: Массив как указатель

Подождите, а в тех условиях, в которых SaMap применялся там, откуда вы его взяли, вы проверяли? Там же статический массив вроде в кирпиче?

Плюс, как производилась проверка? Должно быть три теста:
  • Под IDE
  • Скомп. в P-код
  • Скомп. в Native-код
Хакер
06.03.2014 (Чт) 23:19
 
Форум: Visual Basic 1–6
Тема: Массив как указатель
Ответы: 49
Просмотры: 19030

Re: Массив как указатель

Ну вот и прояснилась ситуация, надо теперь в старых проектах, где юзались SaMap и SaUnMap произвести реформу и внедрить сохранение и возвращение старого адреса. Спасибо Артуру, что поднял этот вопрос.
ger_kar
06.03.2014 (Чт) 16:58
 
Форум: Visual Basic 1–6
Тема: Массив как указатель
Ответы: 49
Просмотры: 19030

Re: Массив как указатель

Насчет обнуления адреса - ждем Хакера. Да и в любом случае - непонятки только с SaUpmap, к SaMap как раз вопросов нет. А то, про что я говорю "работает" - это как с помощью переопределения функции избавиться от AryPtr, а заодно и от ppSa.

Первое со вторым не связано :)
arthur2
02.03.2014 (Вс) 21:34
 
Форум: Visual Basic 1–6
Тема: Массив как указатель
Ответы: 49
Просмотры: 19030

Re: Массив как указатель

Проделал такой фокус: определил первый параметр SaMap ByRef as long , а потом переопределил её помощью кирпича на byref ary() as any Теперь в процедуру сразу приходит pSa и не нужно AryPtr Public Declare Sub SaMap Lib "*" _ (Ary() ...
arthur2
02.03.2014 (Вс) 21:23
 
Форум: Visual Basic 1–6
Тема: Массив как указатель
Ответы: 49
Просмотры: 19030

Re: Массив как указатель

... код, то увидишь, что у Хакера используются и динамические, и фиксированные массивы. Динамические - там, где нужно двигать указатель. Мало того, SaMap изначально содержит параметр, позволяющий задавать "размер массива" - как раз чтобы можно было сдвигать наш указатель на произвольную ...
arthur2
02.03.2014 (Вс) 18:48
 
Форум: Visual Basic 1–6
Тема: Массив как указатель
Ответы: 49
Просмотры: 19030

Re: Массив как указатель

И, судя по тому, что нот-нот возвращает таки не AryPtr, а адрес SA, то в SaMap/SaUpmap можно обойтись вообще без AryPtr и ppSa: передавать им сразу not(not(arrey)) (особенно учитывая, что нот-нот сразу компилируется в число) Вот блин, нельзя, увы. Для динамического ...
arthur2
02.03.2014 (Вс) 16:03
 
Форум: Visual Basic 1–6
Тема: Массив как указатель
Ответы: 49
Просмотры: 19030

Re: Массив как указатель

... если для большого количества массивов-указателей городить классы (а в них ещё вписать все необходимые проверки, которых принципиально нет в наших Samap/saupmap), то вообще смысл всем этим пользоваться теряется.
arthur2
02.03.2014 (Вс) 15:34
 
Форум: Visual Basic 1–6
Тема: Массив как указатель
Ответы: 49
Просмотры: 19030

Re: Массив как указатель

... & vbCrLf & _ Hex(Not (Not (t))) & " not(not)" И, судя по тому, что нот-нот возвращает таки не AryPtr, а адрес SA, то в SaMap/SaUpmap можно обойтись вообще без AryPtr и ppSa: передавать им сразу not(not(arrey)) (особенно учитывая, что нот-нот сразу компилируется в число)
arthur2
02.03.2014 (Вс) 15:25
 
Форум: Visual Basic 1–6
Тема: Массив как указатель
Ответы: 49
Просмотры: 19030

Re: Массив как указатель

... то зачем вообще размапливать уничтожаемую SA? И вот ещё что очень интересно: Потому что я хочу сделать классный кирпич, в котором вместо SaMap — какая-нибудь функция с другим более понятным называнием, а вызывать SaUnmap (про вызов которого если забыть — будт утечка памяти) будет вообще ...
arthur2
02.03.2014 (Вс) 12:45
 
Форум: Visual Basic 1–6
Тема: Массив как указатель
Ответы: 49
Просмотры: 19030

Re: Массив как указатель

Откуда взяты SaMap и SaUnmap?
Хакер
27.02.2014 (Чт) 7:05
 
Форум: Visual Basic 1–6
Тема: Массив как указатель
Ответы: 49
Просмотры: 19030

Re: Массив как указатель

... если массив динамический, ты ведь всё равно сам подменяешь размер, так что всё равно самому надо контролировать границы. Или я не так понял? Там у SaMap есть опциональный параметр, который означает границу. Для общего случая я туда поставил 0xFFFFFFFF — то есть преднамеренно очень большое значение, ...
Хакер
27.02.2014 (Чт) 6:11
 
Форум: Visual Basic 1–6
Тема: Массив как указатель
Ответы: 49
Просмотры: 19030

Ошибка в ITypeInfo::GetTypeAttr для скомпилированного класса

... Set oTypeInfo = oObject.GetTypeInfo 'Получение указателя на структуру TYPEATTR и подмонтирование к ней массива pstTA = oTypeInfo.GetTypeAttr: Call SaMap(AryPtr(stTA), pstTA) 'Цикл по всем функциям и получение инфы о каждой For lIndex = 0 To stTA(0).cFuncs - 1 'Получение указателя на структуру FUNCDESC ...
ger_kar
11.12.2013 (Ср) 17:31
 
Форум: Visual Basic 1–6
Тема: Ошибка в ITypeInfo::GetTypeAttr для скомпилированного класса
Ответы: 27
Просмотры: 9747

Re: Вопрос по Пользовательскому типу данных (VB6)

Потому что я хочу сделать классный кирпич, в котором вместо SaMap — какая-нибудь функция с другим более понятным называнием, а вызывать SaUnmap (про вызов которого если забыть — будт утечка памяти) будет вообще не нужно, потому что SaUnmap будет вызываться ...
Хакер
30.04.2012 (Пн) 20:48
 
Форум: Visual Basic 1–6
Тема: Вопрос по Пользовательскому типу данных (VB6)
Ответы: 94
Просмотры: 30508

Re: Вопрос по Пользовательскому типу данных (VB6)

Хакер писал(а):Смотреть функции SaMap/SaUnmap
Кстати, здоровский способ! Почему бы тебе не добавить его в свой топик об указателях?
arthur2
30.04.2012 (Пн) 20:46
 
Форум: Visual Basic 1–6
Тема: Вопрос по Пользовательскому типу данных (VB6)
Ответы: 94
Просмотры: 30508

Re: Вопрос по Пользовательскому типу данных (VB6)

... я могу в сях написать pointer[10] как аналог *(pointer + 10) Пример можно посмотреть в любом из моих последних кирпичей. Смотреть функции SaMap/SaUnmap например здесь . Возможность использовать UDT в качестве типа указателя — прилагается, и не требует объявления UDT в TLB в отличие от ...
Хакер
29.04.2012 (Вс) 19:42
 
Форум: Visual Basic 1–6
Тема: Вопрос по Пользовательскому типу данных (VB6)
Ответы: 94
Просмотры: 30508

Re: Поиск в содержимом файла

... релизиацию Viper-а, поэтому просто надеюсь, что там именно то, о чём я говорю. Можешь так же в двух моих последних кирпичах поискать функции SaMap/SaUnmap, вот это точно то, о чём я говорю. ⋅  Указатели через ByRef-аргумент . Трюк хороший, но из-за необходимости часто сдвигать указатель, ...
Хакер
21.09.2011 (Ср) 11:15
 
Форум: Visual Basic 1–6
Тема: Поиск в содержимом файла
Ответы: 115
Просмотры: 27543

Вернуться к расширенному поиску

    TopList