Muchas gracias  a todos por las respuestas, me largo a probarlas y luego
comento resultados.

Gracias nuevamente.

 

 

  _____  

De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Marcelo
Simone
Enviado el: jueves, 10 de mayo de 2007 10:39
Para: vbusers List Member
Asunto: [vbusers] DLL

 

Una variante de implementación, creo que es la más sencilla, es seguir
usando el control msComm “hosteado” por un form pero incluyendo a este en la
dll. Simplemente tendrias que tratar al form como a una clase más en su
función de “contenedora” del control de comunicación y no como interfaz de
usuario.

 

 

Te paso una guía de como sería:

 

1.Creas un form en la dll, por ejemplo “Container”

2.Incluís un control MSComm, por ejemplo “MSComm1”

3.Implementas un acceso al control para que pueda ser usado en la DLL (scope
Friend)

4.Cada ves que lo necesitas se lo pedis al Container: Container.GetMSCOMM()

 

Friend Function GetMSCOMM() As MSComm

    Set GetMSCOMM = Me.MSComm1

End Function

 

No tengo un entorno VB6 a mano por lo que pido disculpas si incluí errores
de sintaxis.

 

Estamos en contacto.

Marcelo

 

  _____  

De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Carlos
Bernardo Maggiotti
Enviado el: Jueves, 10 de Mayo de 2007 09:46 a.m.
Para: vbusers List Member
Asunto: [vbusers] DLL

 

Bueno...
 
Lo que vas a tener que hacer entonces es:
 
1 - Reemplazar el control msComm que venias usando por las funciones API de
llamadas a puertos.
 
2 - Exponer los metodos (Subs y Functions) para que tu Dll ejecute las
acciones que realizaba tu msComm. Y las propiedades (Properties Get-Let)
para poder setearle los parametros que el msComm esperaba.
 
De todos modos, hay una manera de crear un componente msComm "on the fly"
sin necesidad de tener uno pegado en un form, esto por codigo obviamente.
Seria una solucion media chancha pero resolveria tu problema en forma
rapida.
 
Si optas por resolverlo de todos modos mediante API de Windows de llamadas a
puertos fijate si encontras algo en:
 
www. <http://www.allapi.net/> allapi.net/ 
http://vbasic.astalaweb.com/API/1_API.asp
 
Muy bueno lo del grupo de proyectos. Desarrollalo asi que te va a despejar
mucho las dudas al poder debugear tu componente. Sino, create un proyecto
exe de testing para poder asi debugear tu nuevo componente (Obviamente
dentro del mismo grupo de proyectos).

Saludos y espero que te sirva...
CarlosMag

  _____  

From: [EMAIL PROTECTED]
To: [email protected]
Subject: [vbusers] DLL
Date: Wed, 9 May 2007 21:01:09 -0300

Lo que necesito es generar una dll que escuche el puerto serie y devuelva el
string correspondiente. La idea es que esa dll pueda ser usada en otros
proyectos.

Yo utilizo para eso en mi proyecto el control mscomm pero como lo meto en
una dll ese es el tema.

Muchas gracias

 

 

  _____  

De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Cristian C.
Bittel
Enviado el: miércoles, 09 de mayo de 2007 19:45
Para: vbusers List Member
Asunto: [vbusers] DLL

 

Muy buenos consejos de Carlos… 

 

Desde dónde la estás usando a la DLL generada? Es un proyecto tuyo también?
Podés crear un GRUPO de proyectos que incluya la DLL y el EXE desde el que
lo estás llamando, así podés hacer DEBUG.

 

Si no tenés acceso al EXE que usa tu DLL, te aconsejo que te hagas uno de
prueba.

 

Generalmente ese error se debe a no estar correctamente registrada. Si no
estableciste la “Compatibilidad” que dijo Carlos, cada vez que recompilás
tenés que RE-registrar tu DLL. Si lo haces con compatibilidad, con sólo
registrar una vez debería alcanzar mientras no cambies la “firma” de tus
métodos. Pero VB6 hace la registración por vos en el ambiente de desarrollo,
así que si ese error lo tenés en desarrollo, el problema es otro… revisá
tener los métodos que deseas exponer declarados como “Public”

 

Cristian.

 

 

  _____  

De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Carlos
Bernardo Maggiotti
Enviado el: Martes, 08 de Mayo de 2007 15:11
Para: vbusers List Member
Asunto: [vbusers] DLL

 

Hola...
Quiza esto no resuelva tu problema actual, pero me acorde de un par de tips
ActivexDll
 
1 - Es mas recomendable instanciar como...
 
Dim oDll as TuDll.Clase
Set oDll = new TuDll.Clase
 
2 - Desarrollá tus proyectos Dll con compatibilidad binaria. Eso esta entre
las opciones de compilación del proyecto.
 
Saludos y espero que te sirva...
CarlosMag

> From: [EMAIL PROTECTED]
> To: [email protected]
> Subject: [vbusers] DLL
> Date: Tue, 8 May 2007 12:31:14 -0300
> 
> He creado un proyecto dll, automáticamente me crea una clase, en los
> ejemplos que he buscado en Internet me dicen que cree un modulo.
> Hice los procedimientos en las clases y los invoco del codigo
> Genere la dll
> Cuando la voy a usar me dice que no encuentra el punto de entrada x, es
> decir el nombre del procedimiento.
> Alguna pista???
> Muchas gracias desde ya.
> 
> 
> -----Mensaje original-----
> De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Cristian
C.
> Bittel
> Enviado el: lunes, 07 de mayo de 2007 10:39
> Para: vbusers List Member
> Asunto: [vbusers] DLL
> 
> La principal diferencia entre un EXE y una DLL es que esta no tiene un
único
> punto de acceso/inicio.
> 
> Generalmente en un EXE tenés una función Sub Main(). En la DLL no hay un
> único Sub Main, sino que cada método Function/Sub que vos definas como
> "Public" dentro de un módulo de Clase va a servir como punto de inicio y
fin
> de tu aplicación.
> 
> Para iniciar el proyecto tenés que seleccionar un nuevo proyecto del tipo
> DLL ActiveX. Luego agregás módulos de Clases, en los que vas a poner tus
> métodos Public, en esos métodos públicos tenés que simular lo que sería el
> Sub Main de un EXE. Desde ahí podés llamar a otros métodos del mismo
módulo
> o de módulos estándar o inclusive levantar formularios.
> 
> Espero te sirva de ayuda para ir comenzando. Si tenés más dudas, seguí
> consultando.
> 
> Cristian.
> 
> 
> 
> -----Mensaje original-----
> De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Jesús dos
> Santos
> Enviado el: Viernes, 04 de Mayo de 2007 10:01
> Para: vbusers List Member
> Asunto: [vbusers] DLL
> 
> Lista, necesito hacer una dll que consulte un puerto serie y nunca hice
una
> dell, ha manejado puerto serie con el control mscomm, pero no una dll.
> Alguien puede darme alguna pista?
> 
> Desde ya muchas gracias.
> 
> 
> 
> 
> 
> No virus found in this incoming message.
> Checked by AVG Free Edition. 
> Version: 7.5.467 / Virus Database: 269.6.5/792 - Release Date: 06/05/2007
> 21:01
> 
> 
> No virus found in this outgoing message.
> Checked by AVG Free Edition. 
> Version: 7.5.467 / Virus Database: 269.6.5/792 - Release Date: 06/05/2007
> 21:01
> 
> 
> 
> 
> __________ Información de NOD32, revisión 2248 (20070507) __________
> 
> Este mensaje ha sido analizado con NOD32 antivirus system
> http://www.nod32.com
> 
> 
> 

  _____  

Envía mensajes de correo electrónico directamente a tu blog con MSN. Carga
chistes, fotografías y muchas otras cosas. Es gratis.
<http://clk.atdmt.com/MSN/go/msnnksac0030000001msn/direct/01/?href=http://ww
w.imagine-msn.com/spaces> 



__________ Información de NOD32, revisión 2250 (20070508) __________

Este mensaje ha sido analizado con NOD32 antivirus system
http://www.nod32.com <http://www.nod32.com/> 


No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.467 / Virus Database: 269.6.6/795 - Release Date: 09/05/2007
15:07


No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.5.467 / Virus Database: 269.6.6/795 - Release Date: 09/05/2007
15:07

 

  _____  

Descubre Live.com - tu propia página de inicio, personalizada para ver
rápidamente todo lo que te interesa en un mismo sitio. todo en el mismo
sitio. <http://www.live.com/getstarted> 



__________ Información de NOD32, revisión 2256 (20070510) __________

Este mensaje ha sido analizado con NOD32 antivirus system
http://www.nod32.com

Responder a