necesito la ayuda de un programador de VB.net
estoy analizando un codigo y tratando de pasarlo a C pero hay unas funciones que no logro entender, primero podre el codigo y abajo el problema
ret = ReadFile(Hnd, Buffer, 1024, nRead, NO)
If ret = 0 Then
ret = WaitForSingleObject(Hnd, INFINITE)
Select Case ret
Case WAIT_OBJECT_0
Case WAIT_TIMEOUT
End Select
Else
Return Nothing
End If
BytesPerSect = LittleEndianHEXToDecimal(Buffer, &HD, 1)
Private Function LittleEndianHEXToDecimal(ByRef Buffer As Byte(), ByVal offset As Long, ByVal Length As Long) As Long
If Length = 1 Then
Return BitConverter.ToInt16(Buffer, offset)
End If
End Function
Bueno, lo que tengo entendido es que ReadFile leera lo que haya en "Hnd"
despues se hara un if para saber si ReadFile termino, y si no ha terminado WaitForSingleObject hara una pausa hasta que termine, si aparece un WAIT_OBJECT_O o WAIT_TIMEOUT se terminara la espera
despues comienza una funcion, y es la parte que no he sabido bien como funciona y espero me puedan decir si logre entender lo anterior
la funcion maneja el buffer que ReadFile leyo, un hexadecimal, y la longitud del hexadecimal (buffer, 0x0D, 1) y en la funcion hay un if que dice que si la longitud es 1 entonces haceruna conversion a base 16 y el resultado mandarlo de regreso
podrian explicarme sobre BitConverter, en MSDN me quede con la misma duda espero me puedan explicar ustedes un poco mejor
segun yo, Bitconverter analiza los datos guardados en buffer, cuando encuentra el hexadecimal 0x0D lo convierte a decimal que seria 13 y return manda de regreso el numero 13
si es asi, entonces con que yo haga esto seria suficiente?
long out;
if(lenght == 1){
out = strtol(offset,NULL, 16);
printf("%ld\n", out);
getchar();
}
o que es lo que hace realmente, espero me puedan explicar
salu2