Visual Basic - Importar clase de una DLL hecha en C++

Life is soft - evento anual de software empresarial
 
Vista:

Importar clase de una DLL hecha en C++

Publicado por angris20 (4 intervenciones) el 07/08/2004 10:54:32
Buenas a todos.

Vereis, he hecho una DLL en C++ que incluye una clase y quiero usarla en Visual Basic.

He visto que para importar funciones se usa Declare, pero no he visto nada para importar clases.

Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Importar clase de una DLL hecha en C++

Publicado por Cecilia Colalongo (3116 intervenciones) el 07/08/2004 14:31:26
Si es una DLL regular las funciones se declaran con Declare y se utilizan como las API.

Si es una DLL COM (como supongo por lo que dices) la importas por Proyectos -> Referencias y luego la utilizas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar clase de una DLL hecha en C++

Publicado por angris20 (4 intervenciones) el 07/08/2004 14:58:36
Ya, con funciones lo sé hacer, lo que yo me refiero es a una clase. Tengo una clase en la DLL y quiero usarla en VB, ¿cómo la importo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar clase de una DLL hecha en C++

Publicado por Cecilia Colalongo (3116 intervenciones) el 07/08/2004 15:39:33
Se agrega como referencia, no se importan. Desde el menú: Proyectos -> Referencias y se selecciona la DLL y luego se utiliza como un objeto más.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar clase de una DLL hecha en C++

Publicado por Soraya (1 intervención) el 07/08/2004 21:20:58
Dada a tu minima informacion creo que lo mas facil seria que crees una Activex DLL, y en ella exportes una clase COM para que puedas usarla facilmente en Visual Basic u otro lenguaje que soporte la tecnologia COM.
Otra solucion pienso seria que crees funciones exportables en tu DLL simple y en ella llames a los miembros de la clase.
No olvides que cada lenguaje implementa su clase de diferente forma.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar clase de una DLL hecha en C++

Publicado por angris20 (4 intervenciones) el 07/08/2004 21:47:26
Creo que lo que dice Soraya es lo mejor. Me refiero a la segunda solución, porque he intentado agregar la referencia a la DLL como me dijo Cecilia, pero me da error, me dice que no es correcta. Y he usado tanto una que he creado yo (basado en un ejemplo que he visto en una página) como otro ya hecho y compilado.

Puedo hacer dos cosas:

1) Crear variables globales para la DLL y usar funciones importadas en VB (he visto que las variables globales de la DLL mantienen su valor, así que la propia DLL funcionaría como una especie de clase).

2) Crear una clase en la DLL y fuera de dicha clase duplicar las funciones miembro para que sean accesibles desde VB.

Yo veo más cómoda la primera y menos enrevesada. ¿Qué opinais vosotros?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar clase de una DLL hecha en C++

Publicado por Cecilia Colalongo (3116 intervenciones) el 07/08/2004 22:12:02
Si la quieres agregar como referencia y no puedes es porque sencillamente no es una DLL COM sino regular, te sugiero que revises la MSDN y la forma en que creas la DLL en VC++ sea ésta regular o COM (o ActiveX DLL).

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar clase de una DLL hecha en C++

Publicado por angris20 (4 intervenciones) el 07/08/2004 23:21:45
Gracias, Cecilia, era el dato que me faltaba. Me has salvado la vida. Muchísimas gracias.

He creado una biblioteca de clases y he creado una clase con un constructor y una función. Y funciona tanto el constructor como la función.

De nuevo, muchas gracias por vuestra ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar