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

dim databufferpointer as variant
ReadMemBlock (2,0,12,databufferpointer)
 
20.06.2010 15:55  
student
Цитата:
Сообщение от 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  
asmonah
subscript out of rang, но дело сдвинулось, сп, буду дальше добивать! а вариант использовал тк в описалове написан именно этот тип данных
 
21.06.2010 14:36  
student
Цитата:
Сообщение от asmonah
subscript out of rang, но дело сдвинулось, сп, буду дальше добивать! а вариант использовал тк в описалове написан именно этот тип данных
сначала сделай redim swSTR(31) и не будет "subscript out of rang"
 
21.06.2010 14:44  
asmonah
ну, эт можно сразу создать массив нужного размера...
только я теперь его считать не могу, точнее в нем прописывается ерунда какая-то не имеющая ничего общего с действительными данными...
 
21.06.2010 14:52  
asmonah
собственно код следующий, если поможет...
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  
student
Цитата:
Сообщение от 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
 
"Спасибо" student от:
21.06.2010 16:14  
asmonah
Да, действительно, в этом загвоздка! Спасибо!
 
 
Опции темы



Часовой пояс GMT +3, время: 05:05.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.