A
Akupaka
Привет знатокам WinAPI
Ребят, подскажите, пожалуйста, в чем проблема, бо я что-то не могу понять
при выполнении функции RtlMoveMemory, происходит ошибка с текстом "String too large".
возможно эту ошибку по своему понимает среда выполнения и текс не соответствует системному, а может и соответствует.
кто может пояснить, что это за ошибка и как с ней бороться?..
немного описания и кода:
спасибо заранее за ответ!
Ребят, подскажите, пожалуйста, в чем проблема, бо я что-то не могу понять
при выполнении функции RtlMoveMemory, происходит ошибка с текстом "String too large".
возможно эту ошибку по своему понимает среда выполнения и текс не соответствует системному, а может и соответствует.
кто может пояснить, что это за ошибка и как с ней бороться?..
немного описания и кода:
Код:
Declare Public Sub W32_CopyMemory Lib "KERNEL32" Alias "RtlMoveMemory" (destination As Any, Byval source As Any, Byval length As Long)
Type REPLHIST_SUMMARY
ReplicationTime As TIMEDATE
AccessLevel As Integer
AccessFlags As Integer
Direction As Integer
ServerNameOffset As Long
ServerNameLength As Integer
FileNameLength As Integer
Spare1 As Long
Spare2 As Long
End Type
Dim summary As REPLHIST_SUMMARY
Dim mEntries As Variant
Dim sRepTime As String, sHold As String, sTemp As String
Dim hDb As Long, status As Long, hSummary As Long, lEntries As Long, hLock As Long
Dim nLoop As Integer, cbReturn As Integer, nPos As Integer
Dim sumLen As Long
hDb = NsfDbOpen(db.Server, db.FilePath)
status = W32_NSFDbGetReplHistorySummary(hDb, 0, hSummary, lEntries)
********************************************
' ЭТА ФУНКЦИЯ ЗАПОЛНЯЕТ В ПАМЯТИ ПО АДРЕСУ hSummary НЕКОТОРЫЕ СТРУКТУРЫ В КОЛИЧЕСТВЕ lEntries
' ИСХОДЯ ИЗ ТОГО, ЧТО lEntries = 2, ТО ФУНКЦИЯ ВЫПОЛНИЛАСЬ КОРРЕКТНО
********************************************
Call CheckNotesApiStatus(status)
If (lEntries > 0) Then
Redim mEntries(lEntries - 1)
' get time and direction.
sRepTime = Space(MAXALPHATIMEDATE + 1)
hLock = W32_OSLockObject(hSummary)
For nLoop=0 To lEntries-1
sumLen = Lenb(summary)
Print Cstr(sumLen)
' ТУТ БУДЕТ 30
Call W32_CopyMemory(summary, hLock&, Lenb(summary))
********************************************
' ТУТ ВОЗНИКАЕТ ОШИБКА String too large
********************************************
...
Next
...
end if
спасибо заранее за ответ!