
ether_header* pEthHeader = NULL;
INTERMEDIATE_BUFFER PacketBuffer;
pEthHeader = (ether_header*)PacketBuffer.m_IBuffer;
'Ethernet Header
Public Type ether_header
h_dest(ETH_ALEN - 1) As Byte 'destination eth addr
h_source(ETH_ALEN - 1) As Byte 'source ether addr
h_proto As Integer 'packet type ID field
End Type
Public Type INTERMEDIATE_BUFFER
m_qLink As Long
' m_qLink As LIST_ENTRY
m_dwDeviceFlags As Long
m_Length As Long
m_Flags As Long 'NDIS_PACKET flags
m_IBuffer(MAX_ETHER_FRAME - 1) As Byte
End Type
Dim EthHeader As ether_header
Dim PacketBuffer As INTERMEDIATE_BUFFER
. . . . . .
LSet EthHeader = PacketBuffer.m_IBuffer <-- ????
CopyMemory EthHeader, PacketBuffer.m_IBuffer(0), MAX_ETHER_FRAME
'Тип комплексных чисел:
Public Type Complex
Real As Double 'действительная часть числа
Image As Double 'мнимая часть числа
End Type
...
Function C(R As Double,I As Double) As Complex
Complex.Real = R
Complex.Image = I
End Function
...
Function CSum(C1 As Complex,C2 As Complex) As Complex
CSum.Real=C1.Real+C2.Real
CSum.Image=C1.Image+C2.Image
End Function
Leon_ писал(а):8) Да, я уже махнул рукой на встроенные средства VB (бедненькие они, мало возможностей), и использовал API::CopyMemory
- Код: Выделить всё
CopyMemory EthHeader, PacketBuffer.m_IBuffer(0), MAX_ETHER_FRAME
pEthHeader = (ether_header*)PacketBuffer.m_IBuffer;
codemaster писал(а):Мда
Leon_ писал(а):Глубже.. Присвоение 32-битной переменной нового значения. И что?
.
Leon_ писал(а):Все равно в VB нет указателей, так что тут нечего обсуждать.
Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 17