Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ошибка функции CopyMemory - что делать? / 7 сообщений из 7, страница 1 из 1
12.01.2005, 10:28:41
    #32860443
Павел Ф.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка функции CopyMemory - что делать?
Суть в следующем:
Мне необходимо определить дату создания BIOS материнской платы
Раньше я все это делал так:

Type BIOS_DATE
s As String * 8
End Type

Declare Sub CopyMemory Lib "Kernel32" Alias "RtlMoveMemory" _
(pDest As Any, pSource As Any, ByVal ByteLen As Long)

Public Function BIOS() As Long
Dim sDB As BIOS_DATE

CopyMemory sDB, ByVal &HFFFF5, 8&
BIOS = DateSerial(Mid(sDB.s, 7, 2), Mid(sDB.s, 1, 2), Mid(sDB.s, 4, 2))
End Function

Все это прекрасно работало под Windows Melenium, но после того, как я перешел на Windows 2000 все накрылось!
Теперь у меня возникает ошибка :
Инсрукция по адресу "ХХХХХХХХХХХ" обратилась к памяти по адресу "ХХХХХХХХХХ". Память неможет быть "read".

Ошибку вызывает функция CopyMemory.
Причем, если убрать ByVal перед вторым аргументом или добавить перед первым, ошибка пропадает, но функция возвращает непонятный набор символов.
В чем может быть причина? Что делать? Помогите!!!
Может быть есть другой способ определения даты создания BIOS материнской платы?
...
Рейтинг: 0 / 0
12.01.2005, 10:40:48
    #32860479
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка функции CopyMemory - что делать?
авторМожет быть есть другой способ определения даты создания BIOS материнской платы?через WMI для класса Win32_BIOS
...
Рейтинг: 0 / 0
12.01.2005, 10:48:54
    #32860497
_bob
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка функции CopyMemory - что делать?
1 movememory попробуй
2 или tlb с описанием апи-функции и её параметров сделай и подключи к бейсиковому проекту (деклар, ессно не нужен будет) - таким образом удалось заставить устойчиво работать бейсиковый NTservice
3 а ещё лучше dll-ку на C или делфи напиши и все подобные понты в ней реализуй, все таки бейсик с некоторыми апишками криво работает (см. свой случай)
------------------
Best regards, _bob
...
Рейтинг: 0 / 0
13.01.2005, 10:20:03
    #32862531
Павел Ф.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка функции CopyMemory - что делать?
А можно поподробнее?
А то я что-то не очень знаком с WMI и tlb.
...
Рейтинг: 0 / 0
13.01.2005, 10:47:57
    #32862629
_bob
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка функции CopyMemory - что делать?
Павел Ф.А можно поподробнее?
А то я что-то не очень знаком с WMI и tlb.


на языке ODL (Object Description Language) пишется описание интерфейса, затем компилируется, получается библиотека типов (.tlb) теперь ODL чуть видоизменили и назвали MIDL, поищи в инете, там тьма статей по этому поводу

для примера поищи файлы .odl или .idl, фактически это исходники для .tlb

про WMI пусть кузя объясняет :-)
...
Рейтинг: 0 / 0
13.01.2005, 11:14:27
    #32862708
marvan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка функции CopyMemory - что делать?
как вариант:
Код: plaintext
1.
2.
3.
4.
5.
6.
Public Property Get SystemBiosDate() As String
    If isNT Then
       SystemBiosDate = GetRegistryValue(HKLM, "Hardware\Description\System", "SystemBiosDate", "")
    Else
       SystemBiosDate = StrFromPtrA(&HFFFF5)
    End If
End Property
...
Рейтинг: 0 / 0
13.01.2005, 14:29:16
    #32863298
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка функции CopyMemory - что делать?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub Command1_Click()
Dim BiosSet, Bios, rd, vs

  Set BiosSet = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("SELECT * FROM Win32_BIOS")
  For Each Bios In BiosSet
    rd = Bios.ReleaseDate
    vs = Bios.Version
    ...
  Next
  Set BiosSet = Nothing
End Sub
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ошибка функции CopyMemory - что делать? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]