SoloCodigo
Programación General => C/C++ => Visual C++ => Mensaje iniciado por: charlytos en Viernes 4 de Noviembre de 2005, 17:37
-
Hola a tod@s:
Tengo un problema muy serio. Por una serie de requerimientos de una aplicacion q tengo q hacer, me he visto obligado a realizar una parte del proceso de mi aplicacion en Visual C++.
Tengo otra parte de este proceso q se hace en VB 6.0.
Pues bien, necesitaria saber como poder realizar la llamada al código c++ (para q realizara su tarea) y el array de datos q tengo en c++ (q es como resultado del proceso) devolverlo a la aplicacion Vb6.
Todo esto deberia de ser transparente para el usuario.
Muchas gracias por la ayuda.
-
Podes generar una DLL con C++ exportando funciones de tipo __stdcall (es absolutamente necesario que sean stdcall) y llamarlas desde VB.
:devil:
-
Ahora el problema q me asalta es q no se pasar un String desde C++ (a traves de esa DLL) a VB6
Código VB6:
-- Llamada de la función:
retorno = DLLdevolverNombre(i, MyArrayNombre(i))
*MyArrayNombre(i) es un array de String
-- Declaración de la función:
Public Declare Function DLLdevolverNombre Lib "mutacion2.dll" (ByVal i As Long, ByVal nom As String) As Long
Código C++:
int FAR PASCAL DLLdevolverNombre (int i, char *nom)
{
nom = mi_mutacion.DevolverNombre(i);
return strlen(nom);
}
char* CMutacion::DevolverNombre (int i)
{
return a_mutacion.nombre;
}
*a_mutacion es un array de objetos y uno de los elementos de ese objeto es el nombre.
struct dato {
int num1;
int num2;
char nombre[7];
int intensidad;
int fondo;
} a_mutacion[4608];
A ver si me podeis ayudar, muchas gracias.