Paso de parámetros entre VB y VC++
Soy un programador de Visuasl Basic 6.0 y ahora estoy incursionando en Visual C++ 6.0.
Mi problema es el siguiente, tengo una rutina en Visual Basic 6.0 la cual es muy lenta,
y quiero escribirla en Visual C++ como una DLL y llamarla desde Visual Basic.
En visual C++ ya la probé y es infinitamente más rápida.
Mi duda es cómo declarar la función en Visual C++ para pasarle como parámetro
un arreglo de enteros por referencia, esto es, desde visual basic se debe de escribir algo así:
Declare Sub MiFuncion Lib "MyDll.dll" (ByRef arreglo() As Integer)
Dim arreglo(2) as intger
arreglo(0)=1
arreglo(1)=2
arreglo(2)=3
MiFuncion(arreglo)'Llamar a la funcion en Visual C++
Internamente los valores del arreglo serán modificados por Visual C++, y al salir
de la función el arreglo deberá de tener los nuevos valores.
En C++ he creado un proyecto Win32 Dynamyc-Link Library (tampoco se si este es mi mejor opción)
Y he declarado la función para recibir un arreglo de enteros por referencia de varias formas y
ninguna de ellas me funciona, he aquí algunas de ellas:
PUBLIC (void) MiFuncion(int arreglo[])
{
arreglo[0]=100;
arreglo[1]=200;
arreglo[2]=300;
}
PUBLIC (void) MiFuncion(int *arreglo[])
{
*arreglo[0]=100;
*arreglo[1]=200;
*arreglo[2]=300;
}
PUBLIC (void) MiFuncion(int *arreglo)
{
*arreglo=100;//este es un apuntador a entero sin emabrgo
//de esta forma no se como accesar a cada elemento del arreglo
}
Mi problema es el siguiente, tengo una rutina en Visual Basic 6.0 la cual es muy lenta,
y quiero escribirla en Visual C++ como una DLL y llamarla desde Visual Basic.
En visual C++ ya la probé y es infinitamente más rápida.
Mi duda es cómo declarar la función en Visual C++ para pasarle como parámetro
un arreglo de enteros por referencia, esto es, desde visual basic se debe de escribir algo así:
Declare Sub MiFuncion Lib "MyDll.dll" (ByRef arreglo() As Integer)
Dim arreglo(2) as intger
arreglo(0)=1
arreglo(1)=2
arreglo(2)=3
MiFuncion(arreglo)'Llamar a la funcion en Visual C++
Internamente los valores del arreglo serán modificados por Visual C++, y al salir
de la función el arreglo deberá de tener los nuevos valores.
En C++ he creado un proyecto Win32 Dynamyc-Link Library (tampoco se si este es mi mejor opción)
Y he declarado la función para recibir un arreglo de enteros por referencia de varias formas y
ninguna de ellas me funciona, he aquí algunas de ellas:
PUBLIC (void) MiFuncion(int arreglo[])
{
arreglo[0]=100;
arreglo[1]=200;
arreglo[2]=300;
}
PUBLIC (void) MiFuncion(int *arreglo[])
{
*arreglo[0]=100;
*arreglo[1]=200;
*arreglo[2]=300;
}
PUBLIC (void) MiFuncion(int *arreglo)
{
*arreglo=100;//este es un apuntador a entero sin emabrgo
//de esta forma no se como accesar a cada elemento del arreglo
}
2 Respuestas
Respuesta de juanluisjl
1
Respuesta de jumbo
1