Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Передача аргументов из VB

7
30 мая 2007 года
@pixo $oft
3.4K / / 20.09.2006
Есть следующая программа на VB:
 
Код:
Private Declare Sub TestSub Lib "MyLib"(ByVal Addr0 as Long,ByVal Addr1 As Long)
Private Const S as String="Test string"
Private Const L as Long=65536
Private Sub Main
 MsgBox Hex$(VarPtr(S))+","+Hex$(VarPtr(L))
 TestSub VarPtr(S),VarPtr(L)
End Sub

TestSub имеет делом записать дамп стека[SIZE="1"](512 байт,исключая адрес возврата,в файл.При бинарном поиске обнаруживается,что адреса на параметры не только не расположены за адресом возврата(что,впрочем,и понятно-чтобы выполнить процедуру,VB должен вызвать из своего движка DLLFunctionCall или что-то там ещё и передать ей имя вызываемой функции)[/SIZE],но и находятся друг от друга на порядочном расстоянии.Насколько я помню,VB преобразует типы,поэтому ссылки на преобразованные переменные должны находиться где-то рядом:D.Ведь WinAPI-функции как-то находят передаваемые им параметры:).Никто не поможет найти местоположение адресов?
Кстати,во время написания этой DLL'ки была замечена одна интересная особенность:DLL'ка существует(даже полный путь к ней прописан),процедура в ней-тоже,а VB при попытке вызова функции пишет,что 'File not found',а код ошибки был не 53(при простом отсутствии файла код ошибки НЕ ТАКОЙ!!!).В чём дело?
Пожалуйста,помогите!Очень надо!Если кому-то чем-то надо помочь,помогу,чем смогу:)
257
30 мая 2007 года
kosfiz
1.6K / / 18.09.2005
простенький вопрос(может даже не в тему): длл на чем написана? на VB?
7
07 июня 2007 года
@pixo $oft
3.4K / / 20.09.2006
Нет,она написана на Асме.Впрочем,я со всем разобрался,спасибо всем:)
Дело было так-я использовал Invoke Func,[ESP+4],[ESP+8] и т.д.В этом то и была проблема-я неправильно рассчитал смещение,и из-за этого аксес виолэйшн
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог