Foros del Web » Programación para mayores de 30 ;) » C/C++ »

DLL en C/C++ & VB6

Estas en el tema de DLL en C/C++ & VB6 en el foro de C/C++ en Foros del Web. Buenas a todos, les comento que recién estoy comenzando con el lenguaje C. Quisiera saber si es posible (y cómo hacerlo), el llamar a una ...
  #1 (permalink)  
Antiguo 02/08/2011, 10:26
 
Fecha de Ingreso: julio-2011
Mensajes: 53
Antigüedad: 13 años, 4 meses
Puntos: 2
DLL en C/C++ & VB6

Buenas a todos, les comento que recién estoy comenzando con el lenguaje C. Quisiera saber si es posible (y cómo hacerlo), el llamar a una DLL creada en VB6 desde otra DLL creada en C o C++. Esto es porque: las DLLs en Visual Basic no son muy eficaces para mi "trabajo". Pues me han comentado que debo utilizar DLLs en C/C++, pero como mis conocimientos son muy bajos en ambos lenguajes, pensé en realizar las funciones en una DLL ActiveX de VB6 y llamarla desde otra en C o C++.

Gracias y saludos!
  #2 (permalink)  
Antiguo 02/08/2011, 10:36
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses
Puntos: 228
Respuesta: DLL en C/C++ & VB6

Por lo que comentas que las DLL no son muy eficiente en VB6, menos aficiente va a ser si llamas desde una DLL de C++ a otro DLL de VB6.

Yo evaluaria que tienes que hacer, y aprenderlo en C++. Luego hacer un Dll es facil

Saludos
  #3 (permalink)  
Antiguo 02/08/2011, 10:47
 
Fecha de Ingreso: julio-2011
Mensajes: 53
Antigüedad: 13 años, 4 meses
Puntos: 2
Respuesta: DLL en C/C++ & VB6

Cita:
Iniciado por sam90 Ver Mensaje
Por lo que comentas que las DLL no son muy eficiente en VB6, menos aficiente va a ser si llamas desde una DLL de C++ a otro DLL de VB6.

Yo evaluaria que tienes que hacer, y aprenderlo en C++. Luego hacer un Dll es facil

Saludos
Pues quisira exportar algunas funciones, con SetWindowLong, Hook y Unhook. Tengo un programa el cual no tengo el código de fuente, y debo interpretar mensajes. Pero no puedo interpretarlos con VB6 (aunque el programa sea en VB6). Debo interpretar el mensaje WM_MOUSEMOVE de un Fromulario. Pues me han dicho, como dije anteriormente, que debo hacerlo en una DLL en C/C++, supongo que será preferible hacerla en C. Aver si me puedes ayudar un poco con esto.

Saludos.
  #4 (permalink)  
Antiguo 02/08/2011, 12:39
 
Fecha de Ingreso: febrero-2007
Mensajes: 163
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: DLL en C/C++ & VB6

Para declarar SetWindowLog seria:

Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( ByVal hWnd As Long, ByVal ndx As Long, ByVal newValue As Long) As Long

Visual Basic trae una aplicacion que vos ingresas el nombre de la API y te crea el declare. Despues lo pegas y lo usas en donde quieras.
Pero lo que entiendo es que vos queres usar funciones que estan en una dll VB6 en un programa C/C++. Tendrias que fijarte porque es casi seguro que la dll sea COM, no una dll normal, con lo cual no podrias usar alegremente las funciones de adentro. Deberias usar la sentencia #import para importar las clases COM y poder usarla dentro de tu programa, siempre usando automation.
  #5 (permalink)  
Antiguo 02/08/2011, 12:50
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses
Puntos: 228
Respuesta: DLL en C/C++ & VB6

Sobre Api de Windows te puedo decir que si las utilizas en Visual Basic la puedes utilizar en C/C++. Su logica de funcionamiento seria la misma.
Lo que no se como funcionan cada una de estas API. Eso deberias buscar en internet.

Y otra consulta la DLL la tienes en Visual Basic o quieres crear una DLL??


Saludos
  #6 (permalink)  
Antiguo 02/08/2011, 13:04
 
Fecha de Ingreso: julio-2011
Mensajes: 53
Antigüedad: 13 años, 4 meses
Puntos: 2
Respuesta: DLL en C/C++ & VB6

Cita:
Iniciado por osqar Ver Mensaje
Para declarar SetWindowLog seria:

Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( ByVal hWnd As Long, ByVal ndx As Long, ByVal newValue As Long) As Long

Visual Basic trae una aplicacion que vos ingresas el nombre de la API y te crea el declare. Despues lo pegas y lo usas en donde quieras.
Pero lo que entiendo es que vos queres usar funciones que estan en una dll VB6 en un programa C/C++. Tendrias que fijarte porque es casi seguro que la dll sea COM, no una dll normal, con lo cual no podrias usar alegremente las funciones de adentro. Deberias usar la sentencia #import para importar las clases COM y poder usarla dentro de tu programa, siempre usando automation.
Gracias, pero el funcionamiento de SetWindowLong lo manejo perfectamente en VB6. Estoy pidiendo alguna ayuda para utilizarlo en C.

Cita:
Iniciado por sam90 Ver Mensaje
Sobre Api de Windows te puedo decir que si las utilizas en Visual Basic la puedes utilizar en C/C++. Su logica de funcionamiento seria la misma.
Lo que no se como funcionan cada una de estas API. Eso deberias buscar en internet.

Y otra consulta la DLL la tienes en Visual Basic o quieres crear una DLL??


Saludos
La DLL ya la creé, es una DLL ActiveX en VB6. Quería utilizar sus funciones desde una en C.

Saludos.
  #7 (permalink)  
Antiguo 02/08/2011, 13:08
 
Fecha de Ingreso: febrero-2007
Mensajes: 163
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: DLL en C/C++ & VB6

Cita:
Iniciado por krev16 Ver Mensaje
Gracias, pero el funcionamiento de SetWindowLong lo manejo perfectamente en VB6. Estoy pidiendo alguna ayuda para utilizarlo en C.
Desde C/C++ incluyendo windows.h ya la tenes, la podes usar sin problemas.

Cita:
Iniciado por krev16 Ver Mensaje
La DLL ya la creé, es una DLL ActiveX en VB6. Quería utilizar sus funciones desde una en C.
Tenes que usar #import "archivo.dll" con eso te importa los objetos COM de la ActiveX, en general los smart pointer de los objetos son NombreDeObjetPtr y con eso no tenes que manejar las referencias.
  #8 (permalink)  
Antiguo 02/08/2011, 13:46
 
Fecha de Ingreso: julio-2011
Mensajes: 53
Antigüedad: 13 años, 4 meses
Puntos: 2
Respuesta: DLL en C/C++ & VB6

Cita:
Iniciado por osqar Ver Mensaje
Tenes que usar #import "archivo.dll" con eso te importa los objetos COM de la ActiveX, en general los smart pointer de los objetos son NombreDeObjetPtr y con eso no tenes que manejar las referencias.
Por mi suma ignorancia no sabría como seguir, luego de importarla. Si no te molesta...

Gracias por la ayuda

Saludos :).

Etiquetas: dll, funcion, vb6, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:12.