Llamada a funciones de una librería C++ desde visual Basic

07/07/2003 - 18:44 por Mario | Informe spam
Hola a todos;

Dispongo de una librería hecha en C++ para Pocket Pc y no logro hacer
fucionar todas sus funciones.

Las declaraciones de dichas funciones en C son:

1)
char Id(char * Identficador)

Y yo la llamo y declaro desde Visual Basic así

Declare Function Id Lib "nombredll.dll" (ByVal Identificador As String) as
Long


Dim strId As String
Dim lngReturn As Long

lngReturn=Id(strId)

No da errores pero no devuelve la cadena que debiera, sino caracteres no
imprimibles algunos.

2)
char Read (BYTE * Dato) //Devuelve cuatro bytes

Y desde Visual Basic

Declare Function Read Lib "nombredll.dll2 (ByRef Dato as Byte)

y su llamada

Dim bytDato(4) As Byte
Dim lngReturn as Long

lngReturn= Read( bytDato(0)) //Se pasa el apuntador del primer elemento.

El caso es que funciona pero solo devuelve el primer byte
¿Cómo puedo indicar que es una matriz de bytes en la declaración ?


Gracias por vuestra atención y a ver si me podeís ayudar

Saludos
Mario
 

Leer las respuestas

#1 Lokutus
08/07/2003 - 02:08 | Informe spam
El tal Mario en la fecha Lunes 07 Julio 2003 18:44 escribio en
microsoft.public.es.desarrollo.aplicaciones.moviles el siguiente
mensaje:

Dispongo de una librería hecha en C++ para Pocket Pc



Visual Basic usa cadenas UNICODE, (2 octetos), y probablemente
en la DLL estas usando un ASCIIZ tradiccional de un sólo octeto.


Lokutus, asimilando la red.

Preguntas similares