problemas con DLL y Visual Basic

09/11/2003 - 02:53 por antidesco | Informe spam
Hola
tengo un problema para pasarle un parámetro a una DLL que construí.

por ejemplo la función de prueba es la siguiente

BYTE First, Second;
unsigned char BuffCRC_A[] = {0xa0, 0x16, 0x00, 0x22, 0x00, 0x23, 0x03,
0xf0, 0xc4, 0x54, 0xe6 ,0xe6, 0x00, 0xc0, 0x02, 0x81,0x00, 0x00 ,0x00,
0x02}; /* , 0xe8, 0x4d */

ComputeCrc(2 , &BuffCRC_A[0], 20, &First, &Second);
return (First);

esta función retorna en decimal en la variable First 0xe8 y en la variable
Second 0x4d, hasta allí todo bien.

la cuestión es que necesito pasarle la cadena {0xa0, 0x16, 0x00, 0x22,
0x00, 0x23, 0x03, 0xf0, 0xc4, 0x54, 0xe6 ,0xe6, 0x00, 0xc0, 0x02,
0x81,0x00, 0x00 ,0x00, 0x02}, desde visual Basic y no se como, para que
funcione, supongo que deberìa pasarla como string y luego hacer la
transformación
el C++ no es mi fuerte así que agradecería cualquier ayuda.
de antemano gracias
 

Leer las respuestas

#1 Rubén Vigón
10/11/2003 - 09:24 | Informe spam
El tipo "unsigned char" de C/C++ (que admite valores de 0 a 255) se corresponde con el tipo "byte"
de Visual Basic; la definición y carga de el array sería algo así:

Dim BuffCRC_A(1 To 20) As Byte
BuffCRC_A(1) = &HA0
BuffCRC_A(2) = &H16
BuffCRC_A(4) = &H22
BuffCRC_A(6) = &H23
BuffCRC_A(7) = &H3
BuffCRC_A(8) = &HF0
BuffCRC_A(9) = &HC4
BuffCRC_A(10) = &H54
BuffCRC_A(11) = &HE6
BuffCRC_A(12) = &HE6
BuffCRC_A(14) = &HC0
BuffCRC_A(15) = &H2
BuffCRC_A(16) = &H81
BuffCRC_A(20) = &H2

Y para llamar a la función "ComputeCrc", por ejemplo:

ComputeCrc 2, BuffCRC_A(1), 20, First, Second

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic

(Guía de buen uso del foro)
http://perso.wanadoo.es/rubenvigon/foro

Preguntas similares