나는 다음과 같은 코드는 "보호 된 메모리를 읽거나 쓰려고 시도 이것은 종종 다른 메모리가 손상되었음을 나타냅니다."
이 오류가 발생합니다 사용하고 vb.net에서 복어 :
읽기를 시도하거나 쓰기 방지 된 메모리. 이것은 종종 다른 메모리가 손상되었다는 표시입니다. 보호 된 메모리를 읽거나 쓰려고 시도했습니다. 이것은 종종 다른 메모리가 손상되었다는 표시입니다.
Public Function PadBytes(abData() As Byte) As Object
Dim nLen As Long
Dim nPad As Integer
Dim abPadded() As Byte
Dim i As Long
'Set up error handler for empty array
On Error GoTo ArrayIsEmpty
nLen = UBound(abData) - LBound(abData) + 1
nPad = ((nLen \ 8) + 1) * 8 - nLen
ReDim Preserve abPadded(nLen + nPad - 1) ' Pad with # of pads (1-8)
If nLen > 0 Then
CopyMemory(abPadded(0), abData(0), nLen)
End If
For i = nLen To nLen + nPad - 1
abPadded(i) = CByte(nPad)
Next
ArrayIsEmpty:
PadBytes = abPadded
End Function
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Byte, Source As Byte, ByVal Length As Long)
올바른 방법을 보여주십시오.
코드가 VB6-ish인데 특히 CopyMemory 선언이 좋습니다. [pinvoke : CopyMemory] (http://www.pinvoke.net/default.aspx/urlmon/CopyMemory.html) – LarsTech
예, VB6에서 사용했습니다. VB에서 사용하려고했던 것보다 – user3760033
수 없습니다. . longs, 등등 대신 정수를 사용하여 다시 써야합니다. – LarsTech