Hola, tengo unas dll en .net algunas framework 2.x y otras 4.x
el asunto es, que hasta ahora, la 2.x quedó con el regasm, sin, problemas, he creado la tlb y al estar en el explorador de objetos, aparece la dll con sus clases.
no me pasa con la que está hecha en 4.7.2
se que el regasm es otro para hacerlo, no hay problemas por eso, la tlb la pude crear, pero me aparece vaciom sin clases....
que puede ser?
pongamos como ejemplo:
Private Sub cmd_leer_Click()
dll2x.leer
End Sub
comando usado para 2x
C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe /tlb:dll2x.tlb dll2x.dll
para 4x
C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe /tlb:dll4x.tlb dll4x.dll
mientras voy codificando, al poner dll2x y poner el "." ya me aparece lo que necesito, por ejemplo "leer"
pero al hacer en la de 4.x nada....
no aparece nada de nada....
que puede ser?
gracias
A nadie le ha pasado? :P
no puedo hacer funcionar las dll .net en el vb6
Es imposible usar las dll .net en vb6?
he visto gente que las ha usado, pero no tengo idea como....
Hola, probablemente ésto te pueda ayudar, lee todo con atención:
https://www.jasoft.org/Blog/post/como-exponer-una-dll-de-net-para-usarla-con-visual-basic-vbscript-y-asp-clasico
https://devattitude.wordpress.com/2014/03/23/creando-una-dll-en-net-para-visual-basic-6/
http://davidcruz127.blogspot.com/2013/07/usar-dll-creada-en-net-en-visual-basic-6.html
https://social.msdn.microsoft.com/Forums/es-ES/c0e7aebc-bd98-4272-95a8-63cba96a9def/c-llamar-a-dll-vb6-com-desde-net?forum=vcses
https://microsoft.public.es.dotnet.vb.narkive.com/cbW3jPSm/utilizar-dll-de-vb-net-en-vb6
Saludos
Claro que las puedes usar... pero no directamente, porque la convención de llamada s de NET es distinta de la convención de llamadas de vb6.
...tienes que crear un wrapper de las funciones que requieres...
1- Debe ser una proyecto de biblioteca de clases.
2 - al añadir el proyecto, ve a a las propiedades del mismo (doble click en 'myproject' en el explorador de soluciones).
3 - Ve a la pestaña 'Aplicación, pulsa el botón información de ensamblado... debajo del GUID, activa la casilla 'Crear ensamblado visible a través de COM'.
4 - En la ficha 'compilar', abajo dle todo, activa la caislla: Registras para interoperabilidad COM'.
5 - Elimina las clases que tenga el proyecto y añade una nueva clase, pero de tipo 'COM Class', esto generará los GUID, para que pueda ser accedido por VB6... (mira la imagen que adjunto). Es decir, vb6 solo verá la funcionalidad de estas clases, puedes tener otras clases si las necesitas, pero serán de NET al 100, y por supuesto puedes usarlas desde esa 'COM Class'... peor para vb6 serán invisibles e inaccesibles. La funcionalidad que quieras acceder tendrá que estar disponible en las 'COM Class' del proyecto.
No puedes usar todo lo que quieras... en las funciones publicas, en las funciones privadas, puedes usar parámetros de NET...
Estos es, los GUID y la clase NEW sin parámetros.
Los constructores con parámetros, son ignorados y las funciones sobrecargadas son renombradas con sufijos numerados. Por ejemplo: Sean 2 funciones llamadas FunX(byval Y as string) y FunX(byval Y as byte)
La 1ª se sigue llamando igual "FunX", la 2ª se renombra como: "FunX_1", es decir esto es lo que se verá por ejemplo desde VB6.0
Así al compilar permite que puedan ser reconocidos por otras plataformas que usan COM.
Explicar cada vericueto es largo y lleva bastante tiempo, lo mejor es que explores por tí mismo...
Una vez que termines el wrapper, compila tu clase/s... y tendrás que registrarla como una clase de NET, pero gracias a los GUID, VB6 ya podrá 'verla' y usarla.
Los errores que cometas en parámetros a llamadas, supondrá volver al código en NET, solucionar el problema, volver a compilar y registrar... y volver a instanciar desde vb6.
(https://i.imgur.com/MdiDsDO.png)