Hola, he creado una DLL y puse el código que supuestamente sirve para exportar las funciones y poder usarlas desde VB6 pero no me funciona: el código es:
Koocivb6.pro
#-------------------------------------------------
#
# Project created by QtCreator 2010-01-18T14:33:14
#
#-------------------------------------------------
QT += network sql
QT += gui
TARGET = koocivb6
TEMPLATE = lib
DEFINES += KOOCIVB6_LIBRARY
SOURCES += koocivb6.cpp
HEADERS += koocivb6.h\
koocivb6_global.h
Koocivb6.h
#ifndef KOOCIVB6_H
#define KOOCIVB6_H
#include "koocivb6_global.h"
class KOOCIVB6SHARED_EXPORT Koocivb6 {
public:
Koocivb6();
};
#endif // KOOCIVB6_H
koocivb6_global.h
#ifndef KOOCIVB6_GLOBAL_H
#define KOOCIVB6_GLOBAL_H
#include <QtCore/qglobal.h>
#if defined(KOOCIVB6_LIBRARY)
# define KOOCIVB6SHARED_EXPORT Q_DECL_EXPORT
#else
# define KOOCIVB6SHARED_EXPORT Q_DECL_IMPORT
#endif
#ifdef Q_WS_WIN
#define MY_EXPORT __declspec(dllexport)
#else
#define MY_EXPORT
#endif
#endif // KOOCIVB6_GLOBAL_H
koocivb6.cpp
#include "koocivb6.h"
#include <QMessageBox>
Koocivb6::Koocivb6()
{
}
extern "C" MY_EXPORT int avg(QString msg)
{
QMessageBox omsg;
omsg.setText(msg);
omsg.exec();
return 1;
}
Por favor si alguien sabe algo al respecto le agradezco su ayuda. El objetivo es usar la DLL desde Visual Basic 6.
¿Que versión de Qt estás usando? Estimo que la open source, de ser así, creo
que no hay soporte para VB. La dll ¿con qué compilador la creaste?
¡Saludos!
--
http://www.phdcomics.com/comics/archive.php?comicid=56
Lisandro Damián Nicanor Pérez Meyer
http://perezmeyer.com.ar/
http://perezmeyer.blogspot.com/
El 18/01/10, Lisandro Damián Nicanor Pérez Meyer
<perez...@gmail.com> escribió:
--
Enviado desde mi dispositivo móvil
No usar VB :-)
Si no, vas a tener que buscar en la web como han hecho para compilar Qt con
VB...
¡saludos!
--
Un viejo proverbio de El.Machi dice que la memoria es como las
papas fritas... ¡nunca sobran!
--
Has recibido este mensaje porque estás suscrito al grupo "Qt-español" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a qt-es...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a qt-espanol+...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/qt-espanol?hl=es.
El 18/01/10, Jorge Eastman <jeast...@gmail.com> escribió:
>> qt-espanol+...@googlegroups.com<qt-espanol%2Bunsu...@googlegroups.com>
>> Para tener acceso a más opciones, visita el grupo en
>> http://groups.google.com/group/qt-espanol?hl=es.
>>
>>
>>
>>
>
>
> --
> Jorge Eastman
> Consultoría y Sistemas
>
--
Hola Jorge, gracias, pero lamentablemente las políticas de la empresa no me permiten mostrarte dicha información, el problema de la red es la latencia que existe entre Perú y España, ahora hay mas de 60 aplicaciones en VB6 lo ideal seria pasar todas estas a QT, pero por el tiempo del proyecto es imposible, así que como alternativa lo mas factible es solo modificar la forma de obtención de data para las aplicaciones VB6, por eso quiero crear una DLL y solo modificar en VB6 la forma que obtiene la data.
Jesús, aun no e probado LoadLibrary y GetProcAddress, si tuvieses algún ejemplo con QT te lo agradecería mucho.
Saludos
El día 19 de enero de 2010 12:46, Jesús Fernández Prieto
<jsf...@gmail.com> escribió:
Lo cual lleva a la pregunta: con que objetivo queres realizar todo esto?
(Perdonen si esto ya se dijo, pero no vengo siguiendo el hilo con lujo
de detalles)... Lo pregunto, porque por lo que parece es bastante mas
trabajoso hacer la conexion entre Qt y VB, que hacer las cosas
directamente en C++ o Python y usar Qt de formas mas nativa.
Saludos,
Tomas
>
>
>
> El 19 de enero de 2010 15:21, martin ribelotta
> <martinr...@gmail.com <mailto:martinr...@gmail.com>> escribió:
>
> Lo que a mi se me ocurriria es comunicar un proceso Qt con VB6
> mediante un socket local (TCP por ejemplo con WinSock en VB y
> QTcpSocket en Qt) y hacer una infraestructura cliente servidor...
>
> El día 19 de enero de 2010 12:46, Jesús Fernández Prieto
> <jsf...@gmail.com <mailto:jsf...@gmail.com>> escribió:
> > Ahora mismo no tengo ninguna máquina con Qt instalado en
> Windows, por lo
> > tanto no podría probarlo. Sin embargo con una búsqueda rápida he
> encontrado
> > esto. Echale un vistazo:
> >
> > http://edll.sourceforge.net/
> >
> > 2010/1/19 Jarley Vargas Damian <jarl...@gmail.com
> <mailto:jarl...@gmail.com>>
> >>
> >> Hola Jorge, gracias, pero lamentablemente las políticas de la
> empresa no
> >> me permiten mostrarte dicha información, el problema de la red
> es la
> >> latencia que existe entre Perú y España, ahora hay mas de 60
> aplicaciones en
> >> VB6 lo ideal seria pasar todas estas a QT, pero por el tiempo
> del proyecto
> >> es imposible, así que como alternativa lo mas factible es solo
> modificar la
> >> forma de obtención de data para las aplicaciones VB6, por eso
> quiero crear
> >> una DLL y solo modificar en VB6 la forma que obtiene la data.
> >>
> >> Jesús, aun no e probado LoadLibrary y GetProcAddress, si
> tuvieses algún
> >> ejemplo con QT te lo agradecería mucho.
> >>
> >> Saludos
> >>
> >>
> >> El 18 de enero de 2010 22:14, Jorge Eastman
> <jeast...@gmail.com <mailto:jeast...@gmail.com>>
> >> escribió:
> >>>
> >>> Mi hermano.
> >>> No se si el grupo lo permita, yo tengo algo de experiencia con
> VB6 con
> >>> base de datos remotos, específicamente M$SQL-Server y una vez
> que me conecté
> >>> con una DB de Sybase, si me muestras la consulta e indicas alguna
> >>> información como la cantidad de registros y el tamaño de cada
> registro
> >>> podría ayudarte a averiguar el porque el retardo, en mi caso,
> la base de
> >>> datos estaba en Venezuela y la aplicación en estados unidos
> (creo que
> >>> Houston) y no se reportó problemas de tiempo, claro eso
> depende de muchos
> >>> factores.
> >>>
> >>> El 18 de enero de 2010 22:33, Jarley Vargas Damian
> <jarl...@gmail.com <mailto:jarl...@gmail.com>>
> >>> escribió:
> >>>>
> >>>> Gracias por sus respuestas, por ahora mi objetivo es usar
> QOCI para
> >>>> mejorar el tiempo de respuesta ya que mi bd esta en españa y las
> >>>> aplicaciones en peru en vb6. Ya compile OCI y la respuesta es
> acetable
> >>>> ya que una consulta con ADO en vb6 toma de 7 a 8 segundos y
> con OCI en
> >>>> qt toma 0.59 segundos. Quiero crear una dll en qt para usar
> OCI y esta
> >>>> dll usarla en vb6 pero del modo en que se genera con qt no es
> >>>> compatible con vb6, se que hay una forma de hacerlo
> compatible con vb6
> >>>> pero no recuerdo como.
> >>>>
> >>>> El 18/01/10, Jorge Eastman <jeast...@gmail.com
> <mailto:jeast...@gmail.com>> escribió:
> >>>> > Hola Jarley
> >>>> >
> >>>> > Por que no pruebas con la versión compilada con VC, en
> >>>> > http://qt.nokia.com/downloads puedes descargar el framework
> >>>> > pre-compilado
> >>>> > para VS-2008.
> >>>> >
> >>>> > Ahora, si no tienes el Visual Studio .NET, puedes descargar
> la versión
> >>>> > Express, yo hasta ahora solo estoy aprendiendo, pero he podido
> >>>> > compilar sin
> >>>> > problemas.
> >>>> >
> >>>> >
> >>>> > Descargar el framework:
> >>>> > http://qt.nokia.com/downloads/windows-cpp-vs2008
> >>>> > Descar VS Express:
> >>>> > http://www.microsoft.com/express/Downloads/#2008-Visual-CPP
> >>>> >
> >>>> > Sería bueno conocer como te ha ido.
> >>>> >
> >>>> > Saludos a todos.
> >>>> >
> >>>> >
> >>>> > El 18 de enero de 2010 21:12, Jarley Vargas Damian
> >>>> > <jarl...@gmail.com <mailto:jarl...@gmail.com>>escribió:
> >>>> >
> >>>> >> Hola Lisandro, la version de qt es la ultima y es la open
> source, el
> >>>> >> compilador es mingw32. Que me recomiendas? Gracias.
> >>>> >>
> >>>> >> El 18/01/10, Lisandro Damián Nicanor Pérez Meyer
> >>>> >> <perez...@gmail.com <mailto:perez...@gmail.com>> escribió:
> <mailto:qt-es...@googlegroups.com>.
> >>>> >> Para anular tu suscripción a este grupo, envía un correo
> electrónico
> >>>> >> a
> >>>> >>
> >>>> >> qt-espanol+...@googlegroups.com
> <mailto:qt-espanol%2Bunsu...@googlegroups.com><qt-espanol%2Bunsu...@googlegroups.com
> <mailto:qt-espanol%252Buns...@googlegroups.com>>
> >>>> >> Para tener acceso a más opciones, visita el grupo en
> >>>> >> http://groups.google.com/group/qt-espanol?hl=es.
> >>>> >>
> >>>> >>
> >>>> >>
> >>>> >>
> >>>> >
> >>>> >
> >>>> > --
> >>>> > Jorge Eastman
> >>>> > Consultoría y Sistemas
> >>>> >
> >>>>
> >>>> --
> >>>> Enviado desde mi dispositivo móvil
> >>>>
> >>>> --
> >>>> Has recibido este mensaje porque estás suscrito al grupo
> "Qt-español" de
> >>>> Grupos de Google.
> >>>> Para publicar una entrada en este grupo, envía un correo
> electrónico a
> >>>> qt-es...@googlegroups.com <mailto:qt-es...@googlegroups.com>.
> >>>> Para anular tu suscripción a este grupo, envía un correo
> electrónico a
> >>>> qt-espanol+...@googlegroups.com
> <mailto:qt-espanol%2Bunsu...@googlegroups.com>
> >>>> Para tener acceso a más opciones, visita el grupo en
> >>>> http://groups.google.com/group/qt-espanol?hl=es.
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>>
> >>> --
> >>> Jorge Eastman
> >>> Consultoría y Sistemas
> >>>
> >>>
> >>> --
> >>> Has recibido este mensaje porque estás suscrito al grupo
> "Qt-español" de
> >>> Grupos de Google.
> >>> Para publicar una entrada en este grupo, envía un correo
> electrónico a
> >>> qt-es...@googlegroups.com <mailto:qt-es...@googlegroups.com>.
> >>> Para anular tu suscripción a este grupo, envía un correo
> electrónico a
> >>> qt-espanol+...@googlegroups.com
> <mailto:qt-espanol%2Bunsu...@googlegroups.com>
> >>> Para tener acceso a más opciones, visita el grupo en
> >>> http://groups.google.com/group/qt-espanol?hl=es.
> >>>
> >>
> >>
> >> --
> >> Has recibido este mensaje porque estás suscrito al grupo
> "Qt-español" de
> >> Grupos de Google.
> >> Para publicar una entrada en este grupo, envía un correo
> electrónico a
> >> qt-es...@googlegroups.com <mailto:qt-es...@googlegroups.com>.
> >> Para anular tu suscripción a este grupo, envía un correo
> electrónico a
> >> qt-espanol+...@googlegroups.com
> <mailto:qt-espanol%2Bunsu...@googlegroups.com>
> >> Para tener acceso a más opciones, visita el grupo en
> >> http://groups.google.com/group/qt-espanol?hl=es.
> >>
> >
> >
> > --
> > Has recibido este mensaje porque estás suscrito al grupo
> "Qt-español" de
> > Grupos de Google.
> > Para publicar una entrada en este grupo, envía un correo
> electrónico a
> > qt-es...@googlegroups.com <mailto:qt-es...@googlegroups.com>.
> > Para anular tu suscripción a este grupo, envía un correo
> electrónico a
> > qt-espanol+...@googlegroups.com
> <mailto:qt-espanol%2Bunsu...@googlegroups.com>
> > Para tener acceso a más opciones, visita el grupo en
> > http://groups.google.com/group/qt-espanol?hl=es.
> >
> >
>
> --
> Has recibido este mensaje porque estás suscrito al grupo
> "Qt-español" de Grupos de Google.
> Para publicar una entrada en este grupo, envía un correo
> electrónico a qt-es...@googlegroups.com
> <mailto:qt-es...@googlegroups.com>.
> Para anular tu suscripción a este grupo, envía un correo
> electrónico a qt-espanol+...@googlegroups.com
> <mailto:qt-espanol%2Bunsu...@googlegroups.com>
> Para tener acceso a más opciones, visita el grupo en
> http://groups.google.com/group/qt-espanol?hl=es.
>
>
>
>
>
>
> --
Y si haces una app de consola y parseas el output? le pasas la consulta
como parametro, y te devuelve el resultado en algun formato que te
convenga, tal vez json o xml... Y despues llamas a esa app desde VB6...
>
> Gracias.
>
> El 19 de enero de 2010 17:25, ChIIph <chi...@gmail.com
> <mailto:chi...@gmail.com>> escribió:
>
> On 01/19/10 17:25, Jarley Vargas Damian wrote:
> > Martin lograste hacerlo, yo aun sigo con el problema, ya instale es
> > sdk de QT para VS .net 2008 logre que la dll se agregue como
> > referencia a VB6 pero al momento de utilizarla es decir:
> >
> > Dim oDll = New DllQt
> >
> > me sale un error de automatización.
> Lo que el ruso quiso decir (corregime ruso, si me equivoco) es que por
> un lado haces un app en C++ y Qt y por otro una en VB6 y las
> comunicas a
> traves de un socket, o alguna otra tecnica de IPC. De esta forma
> usas Qt
> dentro de VB sin tener Qt dentro de VB :) ...
>
> Lo cual lleva a la pregunta: con que objetivo queres realizar todo
> esto?
> (Perdonen si esto ya se dijo, pero no vengo siguiendo el hilo con lujo
> de detalles)... Lo pregunto, porque por lo que parece es bastante mas
> trabajoso hacer la conexion entre Qt y VB, que hacer las cosas
> directamente en C++ o Python y usar Qt de formas mas nativa.
>
> Saludos,
> Tomas
> >
> >
> >
> > El 19 de enero de 2010 15:21, martin ribelotta
> > <martinr...@gmail.com <mailto:martinr...@gmail.com>
> <mailto:martinr...@gmail.com
> <mailto:martinr...@gmail.com>>> escribió:
> >
> > Lo que a mi se me ocurriria es comunicar un proceso Qt con VB6
> > mediante un socket local (TCP por ejemplo con WinSock en VB y
> > QTcpSocket en Qt) y hacer una infraestructura cliente
> servidor...
> >
> > El día 19 de enero de 2010 12:46, Jesús Fernández Prieto
> > <jsf...@gmail.com <mailto:jsf...@gmail.com>
> <mailto:jsf...@gmail.com <mailto:jsf...@gmail.com>>> escribió:
> > > Ahora mismo no tengo ninguna máquina con Qt instalado en
> > Windows, por lo
> > > tanto no podría probarlo. Sin embargo con una búsqueda
> rápida he
> > encontrado
> > > esto. Echale un vistazo:
> > >
> > > http://edll.sourceforge.net/
> > >
> > > 2010/1/19 Jarley Vargas Damian <jarl...@gmail.com
> <mailto:jarl...@gmail.com>
> > <mailto:jarl...@gmail.com <mailto:jarl...@gmail.com>>>
> > >>
> > >> Hola Jorge, gracias, pero lamentablemente las políticas de la
> > empresa no
> > >> me permiten mostrarte dicha información, el problema de
> la red
> > es la
> > >> latencia que existe entre Perú y España, ahora hay mas de 60
> > aplicaciones en
> > >> VB6 lo ideal seria pasar todas estas a QT, pero por el tiempo
> > del proyecto
> > >> es imposible, así que como alternativa lo mas factible es
> solo
> > modificar la
> > >> forma de obtención de data para las aplicaciones VB6, por eso
> > quiero crear
> > >> una DLL y solo modificar en VB6 la forma que obtiene la data.
> > >>
> > >> Jesús, aun no e probado LoadLibrary y GetProcAddress, si
> > tuvieses algún
> > >> ejemplo con QT te lo agradecería mucho.
> > >>
> > >> Saludos
> > >>
> > >>
> > >> El 18 de enero de 2010 22:14, Jorge Eastman
> > <jeast...@gmail.com <mailto:jeast...@gmail.com>
> <mailto:jeast...@gmail.com <mailto:jeast...@gmail.com>>>
> > >> escribió:
> > >>>
> > >>> Mi hermano.
> > >>> No se si el grupo lo permita, yo tengo algo de
> experiencia con
> > VB6 con
> > >>> base de datos remotos, específicamente M$SQL-Server y
> una vez
> > que me conecté
> > >>> con una DB de Sybase, si me muestras la consulta e
> indicas alguna
> > >>> información como la cantidad de registros y el tamaño de
> cada
> > registro
> > >>> podría ayudarte a averiguar el porque el retardo, en mi
> caso,
> > la base de
> > >>> datos estaba en Venezuela y la aplicación en estados unidos
> > (creo que
> > >>> Houston) y no se reportó problemas de tiempo, claro eso
> > depende de muchos
> > >>> factores.
> > >>>
> > >>> El 18 de enero de 2010 22:33, Jarley Vargas Damian
> > <jarl...@gmail.com <mailto:jarl...@gmail.com>
> <mailto:jarl...@gmail.com <mailto:jarl...@gmail.com>>>
> > >>> escribió:
> > >>>>
> > >>>> Gracias por sus respuestas, por ahora mi objetivo es usar
> > QOCI para
> > >>>> mejorar el tiempo de respuesta ya que mi bd esta en
> españa y las
> > >>>> aplicaciones en peru en vb6. Ya compile OCI y la
> respuesta es
> > acetable
> > >>>> ya que una consulta con ADO en vb6 toma de 7 a 8 segundos y
> > con OCI en
> > >>>> qt toma 0.59 segundos. Quiero crear una dll en qt para usar
> > OCI y esta
> > >>>> dll usarla en vb6 pero del modo en que se genera con qt
> no es
> > >>>> compatible con vb6, se que hay una forma de hacerlo
> > compatible con vb6
> > >>>> pero no recuerdo como.
> > >>>>
> > >>>> El 18/01/10, Jorge Eastman <jeast...@gmail.com
> <mailto:jeast...@gmail.com>
> > <mailto:jeast...@gmail.com <mailto:jeast...@gmail.com>>>
> escribió:
> > >>>> > Hola Jarley
> > >>>> >
> > >>>> > Por que no pruebas con la versión compilada con VC, en
> > >>>> > http://qt.nokia.com/downloads puedes descargar el
> framework
> > >>>> > pre-compilado
> > >>>> > para VS-2008.
> > >>>> >
> > >>>> > Ahora, si no tienes el Visual Studio .NET, puedes
> descargar
> > la versión
> > >>>> > Express, yo hasta ahora solo estoy aprendiendo, pero
> he podido
> > >>>> > compilar sin
> > >>>> > problemas.
> > >>>> >
> > >>>> >
> > >>>> > Descargar el framework:
> > >>>> > http://qt.nokia.com/downloads/windows-cpp-vs2008
> > >>>> > Descar VS Express:
> > >>>> >
> http://www.microsoft.com/express/Downloads/#2008-Visual-CPP
> > >>>> >
> > >>>> > Sería bueno conocer como te ha ido.
> > >>>> >
> > >>>> > Saludos a todos.
> > >>>> >
> > >>>> >
> > >>>> > El 18 de enero de 2010 21:12, Jarley Vargas Damian
> > >>>> > <jarl...@gmail.com <mailto:jarl...@gmail.com>
> <mailto:jarl...@gmail.com <mailto:jarl...@gmail.com>>>escribió:
> > >>>> >
> > >>>> >> Hola Lisandro, la version de qt es la ultima y es la
> open
> > source, el
> > >>>> >> compilador es mingw32. Que me recomiendas? Gracias.
> > >>>> >>
> > >>>> >> El 18/01/10, Lisandro Damián Nicanor Pérez Meyer
> > >>>> >> <perez...@gmail.com <mailto:perez...@gmail.com>
> <mailto:perez...@gmail.com <mailto:perez...@gmail.com>>> escribió:
> > <mailto:qt-es...@googlegroups.com
> <mailto:qt-es...@googlegroups.com>>.
> > >>>> >> Para anular tu suscripción a este grupo, envía un correo
> > electrónico
> > >>>> >> a
> > >>>> >>
> > >>>> >> qt-espanol+...@googlegroups.com
> <mailto:qt-espanol%2Bunsu...@googlegroups.com>
> > <mailto:qt-espanol%2Bunsu...@googlegroups.com
> <mailto:qt-espanol%252Buns...@googlegroups.com>><qt-espanol%2Bunsu...@googlegroups.com
> <mailto:qt-espanol%252Buns...@googlegroups.com>
> > <mailto:qt-espanol%252Buns...@googlegroups.com
> <mailto:qt-espanol%25252Bun...@googlegroups.com>>>
> > >>>> >> Para tener acceso a más opciones, visita el grupo en
> > >>>> >> http://groups.google.com/group/qt-espanol?hl=es.
> > >>>> >>
> > >>>> >>
> > >>>> >>
> > >>>> >>
> > >>>> >
> > >>>> >
> > >>>> > --
> > >>>> > Jorge Eastman
> > >>>> > Consultoría y Sistemas
> > >>>> >
> > >>>>
> > >>>> --
> > >>>> Enviado desde mi dispositivo móvil
> > >>>>
> > >>>> --
> > >>>> Has recibido este mensaje porque estás suscrito al grupo
> > "Qt-español" de
> > >>>> Grupos de Google.
> > >>>> Para publicar una entrada en este grupo, envía un correo
> > electrónico a
> > >>>> qt-es...@googlegroups.com
> <mailto:qt-es...@googlegroups.com>
> <mailto:qt-es...@googlegroups.com
> <mailto:qt-es...@googlegroups.com>>.
> > >>>> Para anular tu suscripción a este grupo, envía un correo
> > electrónico a
> > >>>> qt-espanol+...@googlegroups.com
> <mailto:qt-espanol%2Bunsu...@googlegroups.com>
> > <mailto:qt-espanol%2Bunsu...@googlegroups.com
> <mailto:qt-espanol%252Buns...@googlegroups.com>>
> > >>>> Para tener acceso a más opciones, visita el grupo en
> > >>>> http://groups.google.com/group/qt-espanol?hl=es.
> > >>>>
> > >>>>
> > >>>>
> > >>>
> > >>>
> > >>>
> > >>> --
> > >>> Jorge Eastman
> > >>> Consultoría y Sistemas
> > >>>
> > >>>
> > >>> --
> > >>> Has recibido este mensaje porque estás suscrito al grupo
> > "Qt-español" de
> > >>> Grupos de Google.
> > >>> Para publicar una entrada en este grupo, envía un correo
> > electrónico a
> > >>> qt-es...@googlegroups.com
> <mailto:qt-es...@googlegroups.com>
> <mailto:qt-es...@googlegroups.com
> <mailto:qt-es...@googlegroups.com>>.
> > >>> Para anular tu suscripción a este grupo, envía un correo
> > electrónico a
> > >>> qt-espanol+...@googlegroups.com
> <mailto:qt-espanol%2Bunsu...@googlegroups.com>
> > <mailto:qt-espanol%2Bunsu...@googlegroups.com
> <mailto:qt-espanol%252Buns...@googlegroups.com>>
> > >>> Para tener acceso a más opciones, visita el grupo en
> > >>> http://groups.google.com/group/qt-espanol?hl=es.
> > >>>
> > >>
> > >>
> > >> --
> > >> Has recibido este mensaje porque estás suscrito al grupo
> > "Qt-español" de
> > >> Grupos de Google.
> > >> Para publicar una entrada en este grupo, envía un correo
> > electrónico a
> > >> qt-es...@googlegroups.com
> <mailto:qt-es...@googlegroups.com>
> <mailto:qt-es...@googlegroups.com
> <mailto:qt-es...@googlegroups.com>>.
> > >> Para anular tu suscripción a este grupo, envía un correo
> > electrónico a
> > >> qt-espanol+...@googlegroups.com
> <mailto:qt-espanol%2Bunsu...@googlegroups.com>
> > <mailto:qt-espanol%2Bunsu...@googlegroups.com
> <mailto:qt-espanol%252Buns...@googlegroups.com>>
> > >> Para tener acceso a más opciones, visita el grupo en
> > >> http://groups.google.com/group/qt-espanol?hl=es.
> > >>
> > >
> > >
> > > --
> > > Has recibido este mensaje porque estás suscrito al grupo
> > "Qt-español" de
> > > Grupos de Google.
> > > Para publicar una entrada en este grupo, envía un correo
> > electrónico a
> > > qt-es...@googlegroups.com
> <mailto:qt-es...@googlegroups.com>
> <mailto:qt-es...@googlegroups.com
> <mailto:qt-es...@googlegroups.com>>.
> > > Para anular tu suscripción a este grupo, envía un correo
> > electrónico a
> > > qt-espanol+...@googlegroups.com
> <mailto:qt-espanol%2Bunsu...@googlegroups.com>
> > <mailto:qt-espanol%2Bunsu...@googlegroups.com
> <mailto:qt-espanol%252Buns...@googlegroups.com>>
> > > Para tener acceso a más opciones, visita el grupo en
> > > http://groups.google.com/group/qt-espanol?hl=es.
> > >
> > >
> >
> > --
> > Has recibido este mensaje porque estás suscrito al grupo
> > "Qt-español" de Grupos de Google.
> > Para publicar una entrada en este grupo, envía un correo
> > electrónico a qt-es...@googlegroups.com
> <mailto:qt-es...@googlegroups.com>
> > <mailto:qt-es...@googlegroups.com
> <mailto:qt-es...@googlegroups.com>>.
> > Para anular tu suscripción a este grupo, envía un correo
> > electrónico a qt-espanol+...@googlegroups.com
> <mailto:qt-espanol%2Bunsu...@googlegroups.com>
> > <mailto:qt-espanol%2Bunsu...@googlegroups.com
> <mailto:qt-espanol%252Buns...@googlegroups.com>>
> > Para tener acceso a más opciones, visita el grupo en
> > http://groups.google.com/group/qt-espanol?hl=es.
> >
> >
> >
> >
> >
> >
> > --
Eso también pensé, pero el problema es que el usuario se llenara de archivos y se trata de no mostrar la información al usuario solo resultados, te digo esto porque en las aplicaciones VB6 después de obtener los datos aun lo procesan para mostrársela al usuario, no hay forma de usar oci con VB6 directamente? O alguien que haya logrado compilar una DLL para VB6 totalmente compatible? Saben algo sobre LoadLibrary? Estoy probando con ActiveQt, con este ultimo ya logre que VB6 lo tome como referencia me muestra las funcines que he creado, pero al momento de ejecutar me sale error de automatización.
¿No podés usar un único archivo temporal y borrarlo cuando no lo necesitás?
Si eso no te sirve, me sumo a la propuesta del socket.
--
Simulations are like miniskirts, they show a lot and hide the essentials.
Hubert Kirrman
Hay varias alternativas a tu problema:
1) Hacer bindings de VB6 a funciones C planas (que de ahí trabajarian
con las librerias Qt en un ambiente mas Coso...)
En este link hay mucha información para crear DLLs con mingw (supongo
que usaras esto para Qt, o visual C pero yo de eso na' de na')
http://www.emmestech.com/moron_guides/moron2.html
Lo que se me ocurriria es crear una función tipo:
int __declspec(dllexport) sql_query(LPSTR sql_str) {
QString qsql_str = QString::fromLocal8Bit(sql_str);
return database.exec(qsql_str)? 255:0;
}
Y en VB6 importarlo como:
Declare Function sql_query Lib "myqlib.dll" Alias "sql_query" (ByVal
sql_str as String) As Integer
Por logica deberias tener en el path myqlib.dll, mingw*.dll y todas las
librerias Qt necesarias para ejecutar el codigo (QtCore.dll, QtSql.dll,
etc.)
2) Hacer pipes con las entradas y salidas estandares del programa (en
windows???? huajajajajajaj ^_^) eso solamente es en entornos donde
tengamos entrada y salida estandar que valgan la pena... no pienso hacer
un PIPE en windows por mas que digan que se puede sabiendo lo malo que
es el kernel NT en el manejo de la redireccion y mas si necesito tiempos
de respuesta aceptables...
3) Hacer una aplicación servidor en Qt:
http://doc.trolltech.com/4.6/network-threadedfortuneserver.html
y una aplicacion cliente en VB6:
http://www.osix.net/modules/article/?id=25
Y comunicarlo todo como Strings (es decir, cadenas de bytes terminados
en cero o en su defecto como la serializacion de QString:
[4 bytes long. del string][byte 0]....[byte N-1])
Un buen amigo para estas cosas es QDataStream en Qt y en VB6... errr...
bueno, s = $Chr(...)+$Chr(...)+$Chr(...)+....datos... :-(
La 3 te permitiría tener un solo programa puente entre la conexión Qt y
las aplicaciones VB6 incluso en maquinas diferentes sobre la misma
ethernet...
Bueno, espero haber aclarado algunas dudas, cualquier cosa no dudes en
preguntar...
Un saludo, El Ruso (console powereado con QDE)
El 19/01/10, Martin Ribelotta <martinr...@gmail.com> escribió:
--
archivos? a stdout, no podés usar stdout en windows?
--
.::MAbeeTT::.
mabeett [at] gmail [ dot] com
some time ago:
mtspcchaiaeia [at] gmail [dot] com
Hola, opte por el punto número 3 que me indico El Ruso:
Hacer una aplicación servidor en Qt:
http://doc.trolltech.com/4.6/network-threadedfortuneserver.html
y una aplicacion cliente en VB6:
http://www.osix.net/modules/article/?id=25
Y comunicarlo todo como Strings (es decir, cadenas de bytes terminados
en cero o en su defecto como la serializacion de QString:
[4 bytes long. del string][byte 0]....[byte N-1])
Un buen amigo para estas cosas es QDataStream en Qt y en VB6... errr...
bueno, s = $Chr(...)+$Chr(...)+$Chr(...)+....datos... :-(
Ya logre la conexión de VB6 con Qt con winsock, pero tengo unas dudas:
Tengo que enviar los siguientes parámetros desde VB6 a Qt:
- Cadena de conexión (BD, user, passw…) ya que cada aplicación utiliza distintos usuarios y roles
- Consulta SQL
Como recibo estos parámetros en Qt?
Y por favor Ruso si me puedes explicar mejor de cómo enviar los datos y como recibirlos en VB6 que no me quedo muy claro.
Por ultimo cuanta información podré enviar mediante Winsokc, ose si existe límite de datos al momento de enviar ya que algunas consultas devuelven muchos registros por no decir miles.
Gracias, espero su gentil ayuda.
class MyProtocolHandler: public QThread {
Q_OBJECT
public:
MyProtocolHandler(int sockDesc, QObject *parent=0l):
QThread(parent)
{
desc = sockDesc;
}
virtual void run() {
// Una coneccion database por cada thread
QString th_name = QVariant(currentThreadId())
.toString();
// MySQL o cualquier otro driver...
QSqlDatabase db = QSqlDatabase
.addConnection("QMYSQL", th_name);
// Parametros de la coneccion
db.setHostName("localhost.localdomain");
db.setDatabaseName("mydatabase");
// Tambien el socket debe ser local al thread
QTcpSocket sock;
QDataStream data(&sock, QIODevice::ReadWrite);
sock.setSocketDescriptor(sock);
// Hacer hasta perder la coneccion
while(sock.state()==QTcpSocket::ConnectedState) {
// Esperar a que se escrivan datos para un int
while (sock.bytesAvailabes()<sizeof(quint32))
sock.waitForReadyRead(-1);
quint32 size;
data >> size; // Leer el int a travez del stream
QByteArray received;
int i=0;
// Leer la cantidad de bytes especificados...
while (i<size) {
sock.waitForReadyRead(-1);
i+= sock.bytesAvailabes();
received.append(sock.readAll());
}
// El formato es un ejemplo
// Se puede usar cualquier formato que se quiera
// Valores eparados por un fin de carro
QStringList parameters = received.split('\n');
QString user = parameters[0];
QString pass = parameters[1];
QString consulta = parameters[2];
// Abrimos la DB con el usuario y pass dado
db.open(user,pass);
// Y ejecutamos la consulta
QSqlRecord r = db.exec(consulta).record();
QString response;
// Armamos la respuesta cono un
// Comma separated value
for(i=0; i<r.count(); i++)
response += r.field(i)
.value().toString()+',';
// Lo escrivimos al stream
data << response;
db.close();
}
}
private:
int desc;
}
Este ejemplo mínimo debería tomarse como eso, un ejemplo.
Realmente debería implementarse un protocolo con CRC (función buena para
eso es qChecksum(QByteArray) pero solo esta del lado de Qt)
Luego, el otro problema es que este ejemplo es bloqueante, con lo cual,
si el protocolo falla o se pierde la conexión la única manera de matar
la QThread es con un terminate (desaconsejado por los gurúes de la
multitarea) Realmente debería usar eventos con signal/slot pero eso
requiere un desarrollo un poco mas elaborado...
Otro punto a tener en cuenta es que no hacemos ningún handling de
errores, por ejemplo para verificar que el paquete tenga el formato
deseado podríamos usar QRegExp lo que nos daría al vuelo la comprobación
de forma del mensaje...
Con respecto a tu pregunta de la capacidad de TCP/IP, yo he probado
transmitir mas de 16Mb de una sola vez y aunque tarda un poco se
transmite sin errores ni problemas (el CRC y el manejo de paquetes se lo
deja todo al sistema operativo)
Con respecto a VB6... err... hace mil años que no toco nada de eso...
pero seguramente seguirá el mismo principio que del lado Qt, abrir
conexión, enviar paquete, esperar conexión... ^_^
Bueno, espero que esto te sirva como punto de partida, hay que
elaborarlo un poco mas pero en principio seria mas o menos así, lamento
no poder darte mas datos sobre sockets en VB6 pero de los que estamos
aquí no conozco a nadie que use activamente algo en ese lenguaje y
cuando lo toque (si, soy viejo y que!!!!) me espanto tanto que volví a
mi Deplhi/C++Builder
Desgraciadamente el mantenimiento de las aplicaciones legacy tiene estos
dolores de cabeza pero con ingenio y una buena documentación pueden ser
mas fáciles de lo que aparentan...
Otra vez, cuando logres algo, mantenos al tanto de tus progresos con
esto...
Un saludo. El Ruso
> +unsub...@googlegroups.com
> >> > <mailto:qt-espanol%2Bunsu...@googlegroups.com>
> >> > > <mailto:qt-espanol%
Gracias.
El 20/01/10, Martin Ribelotta <martinr...@gmail.com> escribió:
Hola ChIIph, tendrás algún ejemplo de como pasarle parámetros
a una aplicación de consola y como devolver de la misma un String.
Es decir de una app VB6 enviarle una cadena (XML) a la app de consola (QT), y
esta última que devuelva una cadena (XML) a la app VB6.
Agradezco tu ayuda.