Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - ASP и VBScript

Страница: 1 |

 

  Вопрос: Правильная работа с Nothing в VBScript Добавлено: 10.08.10 06:06  

Автор вопроса:  Евгений Владимирович
Здравствуйте форумчане.
Подскажите, пожалуйста, кто встречался с такой проблемой.
Значит есть код, следующего содержания:


set sysIO = CreateObject("System.IO.MemoryStream")
set  Stream = CreateObject("ADODB.Stream")

Stream.Type = 1
Stream.Open()
Stream.LoadFromFile("C:\1.txt")

Dim buf
Do Until Stream.EOS
buf = Stream.Read()
Loop

For i = 0 To Stream.Size - 1
   sysIO.WriteByte(buf(i))
Next

set CrLib = CreateObject("CryptoLibraryImp.SignatureManager")

sysIO.Position = 0
set SignedBytes = CrLib.SignBytes  (Nothing , sysIO)

sysIO.Position = 0
SignedBytes.Position = 0
set FVerf = CrLib.Verify(SignedBytes, sysIO)

If FVerf.Subject <> "" Then
CrLib.ShowCertificateInfoDialog(FVerf)
End If



На строке:
set SignedBytes = CrLib.SignBytes  (Nothing , sysIO)

вылитает ошибка: Недопустимый вызов или аргумент процедуры: 'CrLib.SignBytes'.
Код ошибки: 800A0005

Причем этот код в VB.NET работает без проблем, а в VBScript выдает ошибку. В чем может быть дело?

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 Шпион



ICQ: 250543104 

Вопросов: 13
Ответов: 118
 Профиль | | #1 Добавлено: 10.08.10 06:22
может попробовать использовать Null или vbNull вместо Nothing?
просто в VBScript Nothing обычно используется примерно так:
Set objMyObject=Nothing

и вызывает удаление объекта из памяти и вообще его уничтожение.

Ответить

Номер ответа: 2
Автор ответа:
 Евгений Владимирович



Вопросов: 1
Ответов: 4
 Профиль | | #2 Добавлено: 10.08.10 06:47
Пробовали и Null, и vbNull, и "", и 0, и что еще только не пробовали.
Просто получается следующее.
Вот описание функции SignBytes:

  1.  
  2. Public Function SignBytes(ByVal certificate As System.Security.Cryptography.X509Certificates.X509Certificate, ByVal bytesToSign As System.IO.Stream) As System.IO.Stream



Первый параметр
  1. ByVal certificate As System.Security.Cryptography.X509Certificates.X509Certificate

 - это некий неизвестный ОБЪЕКТ. Он нам неизвестен, поэтому и передаю Nothing.

Второй параметр

  1. ByVal bytesToSign As System.IO.Stream


мы получаем как поток байтов (см. начало кода.)

При этом вариант:

  1. set obj = Nothing
  2. set SignedBytes = CrLib.SignBytes (obj , sysIO)
  3.  

тоже не работает.

Ответить

Номер ответа: 3
Автор ответа:
 Шпион



ICQ: 250543104 

Вопросов: 13
Ответов: 118
 Профиль | | #3 Добавлено: 17.08.10 06:34
читал мелкософт и, если я все правильно понял, то в этот неизвестный ОБЪЕКТ тебе нужно загрузить файл с сертификатом, тогда он будет инициализирован и проблема, наверное, исчезнет.

Ответить

Страница: 1 |

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



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