Acceso a DLL de C++ con .NET

Soltrac

Tengo una pequeña duda...

Estoy accediendo a una función de una DLL cuya definición es así:

int ReadTransaction (unsigned char *buffer);

La duda que tengo es como traduzco ese unsigned char* a .NET (me da igual que sea C# o VB).

He intentado poner Byte, pero no me funciona muy bien. Supongo que tengo que usar las funciones de Encode y Decode, pero no lo tengo muy claro...¿Alguna idea?

Soltrac

Doy mas datos, NECESITO CONSEGUIR 14 bytes.

int ReadTransaction (unsigned char *buffer);

Esta es la función en C++

Y yo la llamo en VB.NET así:

Declare Function ReadTransaction Lib "xxx.dll" (ByRef Buffer As Byte) As Integer

En Buffer, al ser pasado por referencia se queda un nº guardado que NO SE TRADUCIR a lo que me devuelve la función, ya que solo puedo llamara a 1 byte y no a los 13 restantes.

EDIT: Soy gilipollas, y por no pensar en C++ no me salía:

Me ha venido a la luz la idea........

Haciendo:

Dim Buffer(14) As Byte
ReadTransaction(Buffer(0))

Me devuelve todo, ya que la dirección de memoria del array es la dirección de memoria del primer elemento ^.

Usuarios habituales

  • Soltrac