Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение

Не выполняется функция ReadMemBlock СП101ФР-К : Операционные системы и программное обеспечение

24.11.2024 13:14


18.06.2010 13:54
Может кто-нибудь сталкивался... программу пишу vb6, подключил СП, все отчеты снимает, печатает всё правильно, а вот при попытке использовать функцию readmemblock выдает ошибку:"метод readmemblock объекта isp101frobject failed. хотя параметры все правильно задаю...

dim databufferpointer as variant
ReadMemBlock (2,0,12,databufferpointer)
20.06.2010 15:55
Цитата:
asmonah Может кто-нибудь сталкивался... программу пишу vb6, подключил СП, все отчеты снимает, печатает всё правильно, а вот при попытке использовать функцию readmemblock выдает ошибку:"метод readmemblock объекта isp101frobject failed. хотя параметры все правильно задаю...

dim databufferpointer as variant
ReadMemBlock (2,0,12,databufferpointer)
гарантированно работает (правда VBA, но и для VB аналогично)

Dim swSTR() As Byte
ReadMemBlock(1, 1024, 32, VarPtr(swSTR(0)))

и старайся не юзать тип данных вариант
21.06.2010 10:47
subscript out of rang, но дело сдвинулось, сп, буду дальше добивать! а вариант использовал тк в описалове написан именно этот тип данных
21.06.2010 14:36
Цитата:
asmonah subscript out of rang, но дело сдвинулось, сп, буду дальше добивать! а вариант использовал тк в описалове написан именно этот тип данных
сначала сделай redim swSTR(31) и не будет "subscript out of rang"
21.06.2010 14:44
ну, эт можно сразу создать массив нужного размера...
только я теперь его считать не могу, точнее в нем прописывается ерунда какая-то не имеющая ничего общего с действительными данными...
21.06.2010 14:52
собственно код следующий, если поможет...
ReDim swSTR(11) As Byte
lFn = FreeFile
sp.Connect (1)
sp.Init (DateTime.Date)
On Error GoTo 1
1: Call sp.GetErrorMesageRU(1, txtMsg)
s = ""
Call sp.ReadMemBlock(2, 0, 12, VarPtr(swSTR(0)))
For i = 0 To 11
s = s & (swSTR(i))
Next i
sp.Disconnect
21.06.2010 15:53
Цитата:
asmonah собственно код следующий, если поможет...

Call sp.ReadMemBlock(2, 0, 12, VarPtr(swSTR(0)))
For i = 0 To 11
s = s & (swSTR(i))
Next i
ReadMemBlock(1, 0, 12, VarPtr(swSTR(0)))
For i = 0 To 12 - 1
s = s & "-" & Hex(swSTR(i))
Next i

причем 1 - это BIOS,
т.е
если смотреть через фркомандер - там надо Параметр1=2, а в вызове ф-ции - 1

например у меня результат от фркомандер
41494B303532303031333736

а отработка программы
-41-49-4B-30-35-32-30-30-31-33-37-36
21.06.2010 16:14
Да, действительно, в этом загвоздка! Спасибо!
Часовой пояс GMT +3, время: 13:14.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.