Programación General > Visual C++
Interfaz Con Cualquier Programa
yamobe:
Hola
Estoy intentando accesar los objetos de un programa llamado nxview
he visto anteriormente esto en visual basic (interfaz entre excel y autocad) y tengo entendido que se hace de la siguiente manera:
en visual c++ menu->proyecto->agregar referencias, pestaña COM
ahí elijo la librería ( en este caso tengo un dll y un ocx (que no se lo que es))
Luego en el visor de objetos, puedo ver claramente todas las funciones que existen en la clase de nxview, sin embargo no se como hacer las siguientes cosas:
_declarar lo necesario para poder usar los objetos, clases o funciones
_no se como usar las funciones
Sería perfecto si alguien me pudiera enseñar un ejemplo donde se haga esto... no puedo encontrar en ningún lado!! O que me lo explicara como si fuera un niño de 5 años
Saludos
Yamobe
SteelX:
DLL es una libreria de enlace dinamico, para usarla en visual c, creo que ya hay indicaciones por alli, pero por si acaso voy a dar unas.
tendras que incluir el archivo de cabezera para poder usar las dlls, es decir si tienes un DLL viene con un archivo de cabecera que tiene las interfaces para poder usas las librerias.
Deberas incluir el PATH donde esta la librareria en(un .Lib )project->properties->linker->general->Additional library directories
y en linker->input->Additional Dependencies colocas el nombre del .lib al que pertenece la libreria.
ejem
xys.dll
xys.h
xys.lib
-----------------------------------------------------------------------------------
ocx tambien son librerias. se conocen como activeX solo se anhade el ocx y el visual studio tiene la capacidad de crear las clases y demas interfaces para utilizar.
Ya es cuestion tuya en que parte del programa lo quieras usar, solo debes incluir el archivo de cabecera que genera el visual estudio
yamobe:
ok, entonces logré generar un .cpp y un .h a partir del dll
tengo lo siguiente en el .h:
class INxViewRunTimeObj : public COleDispatchDriver
{
public:
INxViewRunTimeObj() {} // Calls COleDispatchDriver default constructor
INxViewRunTimeObj(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
INxViewRunTimeObj(const INxViewRunTimeObj& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}
// Attributes
public:
// Operations
public:
void CreateMyOpenSpace();
};
como uso la funcion CreateMyOpenSpace??
Lo que no se es la gramática del código... a ver si me pueden ayudar :)
SteelX:
hola yamobe
--- Código: Text --- como ves en tu clase la funcion void CreateMyOpenSpace(); //public:
esta declarada publica, asi que la puedes usar decladando un objeto de la clase
INxViewRunTimeObj. Que en este caso hereda tambien de la clase COleDispatchDriver
pero como veras tiene un constructor por defecto , que no recibe ningun parametro
asi que solo tienes que incluir el .h en el .cpp que vayas a usar la funcion.
declarar un objeto de la clase
--- Código: Text --- INxViewRunTimeObj objeto;objeto.CreateMyOpenSpace(); como esta void y no tiene parametros. ni recibe ni retorna nada..
yamobe:
lo raro es que cuando hago eso me sale:
error C2011: 'INxViewRunTimeObj' : 'class' type redefinition
:(
O sea, estoy usando un MFC, lo raro es que si lo pongo el include en el .h, me sale ese error, pero si lo pongo en el cpp si me funciona
Pero claramente por orden prefiero poner todo en el .h... porque será?
Navegación
[#] Página Siguiente
Ir a la versión completa