ayuda por favor!! uso de Dll de C++ en VB
Mi problema consiste en lo siguiente:
Tengo una funci贸n implementada en C++ y que tengo en una librer铆a ( *.dll) a esta funci贸n la quiero llamar desde Visual Basic la funci贸n en C++ esta declarada de la siguiente manera:
int AbrirFichero(char *namefichero,FILEInfo *datosfichero)
donde namefichero es el nombre del archivo que quiero abrir ( en este caso un .vob) y datos fichero es de tipo estructura la cual he llamado FILEInfo y que tiene la siguiente declaraci贸n:
typedef struct {
int tipo; //0:val, 1:lst, 2:vob o mpg
char *ext[6];
FILE *fpsec; //para gesti贸n de vales
char **lista // para gesti贸n de .lst
int fotogramas,anch,alt,bits;
} FILEInfo;
Ahora en Visual Basic declaro esta funci贸n de la siguiente manera:
Declare Function AbrirFichero Lib "C:ProyectoproyectosolelibreriadvdReleaselibreriadvd.dll" (ByVal namefichero As String, ByRef datosfichero As FILEInfo) As Long
En este mismo modulo general donde declaro la funci贸n tambi茅n estoy definiendo la estructura, haci茅ndolo de la siguiente manera:
Type FILEInfo
tipo As Long
ext(6) As String
lista As String
fotogramas As Long
anch As Long
alt As Long
bits As Long
End Type
Pues con todo esto lo que me ocurre es que cuando se ejecuta desde visual basic la funcion ( que en C++ funciona porque lo he comprobado) me da este error:
聯Error 7 en tiempo de ejecuci贸n:
Memoria insuficiente聰
Estoy un poco agobiada porque no puedo seguir y no tengo ni idea de que puede estar pasando, ¿ se te ocurre algo?¿ en que estoy fallando?
Tengo una funci贸n implementada en C++ y que tengo en una librer铆a ( *.dll) a esta funci贸n la quiero llamar desde Visual Basic la funci贸n en C++ esta declarada de la siguiente manera:
int AbrirFichero(char *namefichero,FILEInfo *datosfichero)
donde namefichero es el nombre del archivo que quiero abrir ( en este caso un .vob) y datos fichero es de tipo estructura la cual he llamado FILEInfo y que tiene la siguiente declaraci贸n:
typedef struct {
int tipo; //0:val, 1:lst, 2:vob o mpg
char *ext[6];
FILE *fpsec; //para gesti贸n de vales
char **lista // para gesti贸n de .lst
int fotogramas,anch,alt,bits;
} FILEInfo;
Ahora en Visual Basic declaro esta funci贸n de la siguiente manera:
Declare Function AbrirFichero Lib "C:ProyectoproyectosolelibreriadvdReleaselibreriadvd.dll" (ByVal namefichero As String, ByRef datosfichero As FILEInfo) As Long
En este mismo modulo general donde declaro la funci贸n tambi茅n estoy definiendo la estructura, haci茅ndolo de la siguiente manera:
Type FILEInfo
tipo As Long
ext(6) As String
lista As String
fotogramas As Long
anch As Long
alt As Long
bits As Long
End Type
Pues con todo esto lo que me ocurre es que cuando se ejecuta desde visual basic la funcion ( que en C++ funciona porque lo he comprobado) me da este error:
聯Error 7 en tiempo de ejecuci贸n:
Memoria insuficiente聰
Estoy un poco agobiada porque no puedo seguir y no tengo ni idea de que puede estar pasando, ¿ se te ocurre algo?¿ en que estoy fallando?
Yo tengo un problema similar, estoy tratando de llamar a API de windows una *.DLL hecho en lenguaje C, la funcion recibe como parametro DirectoryFile de tipo CHAR *, y el correspondiente tipo de datos desde vb es el tipo byte, como tengo que pasar el tipo de datos byte cuando quiero guardar en ella un path donde guardar el archivo, es decir, C:scaneo○jpeg, esto tengo que cargar en el tipo de datos byte para pasarle como parametro a mi funcion que esta metida en la *.DLL. En C el parametro esta definido de tipo CHAR * y su correspondiente en vb debe ser uno de tipo BYTE. Gracias de antemano.!