Hola Antonio,
Recientemente, me ha salido un proyecto para conectar mi software (xharbour profesional) con una dll en .NET.
Es posible, cargar la dll i utilizar los objetos al estilo activex?
Hace tiempo , vi como accedías a código .NET
Muchas gracias.
Pere Cordonet.
DLL en .net
Re: DLL en .net
pcordonet,
Es posible, nosotros lo hacemos sin problema
Es posible, nosotros lo hacemos sin problema
William, Morales
Saludos
méxico.sureste
Saludos
méxico.sureste
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: DLL en .net
Pere,
No he visto la forma en la que William lo hace, seguro será interesante de revisar
Yo publiqué FiveNet en donde explico y muestro el código de como lo hice:
https://code.google.com/p/fivenet/
No he visto la forma en la que William lo hace, seguro será interesante de revisar
Yo publiqué FiveNet en donde explico y muestro el código de como lo hice:
https://code.google.com/p/fivenet/
Re: DLL en .net
Hola wmormar.
Muchas gracias por responder.
Serias tan amable de hacer un ejemplo?
Estoy muy pedido, ya no se que hacer.
Antonio, he visto el proyecto, veo que generas codigo c# pero, como lo haces para compilar? y despues para que este dentro del ejecutable.
Estas utilizando borland, y yo estoy utilizando xbuildw.exe
No se por donde empezar.
Pere Cordonet
Muchas gracias por responder.
Serias tan amable de hacer un ejemplo?
Estoy muy pedido, ya no se que hacer.
Antonio, he visto el proyecto, veo que generas codigo c# pero, como lo haces para compilar? y despues para que este dentro del ejecutable.
Estas utilizando borland, y yo estoy utilizando xbuildw.exe
No se por donde empezar.
Pere Cordonet
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: DLL en .net
Pere,
Revisa este simple diagrama que sintetiza como funciona FIveNet:
https://code.google.com/p/fivenet/wiki/architecture
Revisa este simple diagrama que sintetiza como funciona FIveNet:
https://code.google.com/p/fivenet/wiki/architecture
Re: DLL en .net
Antonio, Pere,
Lei mal? , decia usar la DLL .NET como activex, nosotros usamos la DLL como activex con OLE. Sin problemas. Será que a eso te referias?
Lei mal? , decia usar la DLL .NET como activex, nosotros usamos la DLL como activex con OLE. Sin problemas. Será que a eso te referias?
William, Morales
Saludos
méxico.sureste
Saludos
méxico.sureste
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: DLL en .net
Yo pensé que se referia a usar una DLL programada (hecha en .NET) para ser usada desde .NET
Re: DLL en .net
Hola a los dos,
Me refiero una DLL hecha en .NET i utilizar-la dentro de xharbour Comercial.
He probado de hacer un DLL2LIB pero no funciona, da un error.
He probado de regasm para generar el objeto en el registro i utilizar-lo como OLE y también me da error.
Muchas gracias, por su tiempo.
Espero encontrar alguna solucion.
La unica opción que veo factible, es , crear un proyecto con visual c++ y hacer un import de la DLL. (Aqui si que veo las classes, funciones, metodos, ... )
Que opinais?
Pere
Me refiero una DLL hecha en .NET i utilizar-la dentro de xharbour Comercial.
He probado de hacer un DLL2LIB pero no funciona, da un error.
He probado de regasm para generar el objeto en el registro i utilizar-lo como OLE y también me da error.
Muchas gracias, por su tiempo.
Espero encontrar alguna solucion.
La unica opción que veo factible, es , crear un proyecto con visual c++ y hacer un import de la DLL. (Aqui si que veo las classes, funciones, metodos, ... )
Que opinais?
Pere
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: DLL en .net
Pere,
una DLL hecha en .NET no puede ser usada desde una aplicación en xharbour (ó harbour) puesto que necesita del runtime de .NET y Microsoft tiene bloqueados que programas en C (Harbour es un programa en C) accedan a .NET, porque precisamente .NET quiere evitar eso, inseguridad en el código, y que solo se ejecute .NET
Como se puede saltar esa limitación ? Eso es lo que hace FiveNet
La idea es sencilla: Tu haces un pequeño programa en C# (todos los Windows actuales llevan incluido por defecto el compilador de C#. En el build de FiveNet se muestra como usarlo desde el MsDos) y ese programa tuyo SI usa la DLL en .NET. Luego ese programa tuyo en C# se convierte en un servidor COM y entonces SI puede ser usado desde Harbour
Finalmente, si necesitas pasar información de un evento de .NET a la aplicación en Harbour, tienes que hacer el camino contrario, gracias a que desde una aplicación en .NET si se puede acceder a una aplicación en C que será la que accede a Harbour puesto que una DLL y todo lo que la DLL use, usan la misma pila (stack) internamente.
La idea es simple, aunque parezca un tanto enrevesada, y lo importante es que funciona
una DLL hecha en .NET no puede ser usada desde una aplicación en xharbour (ó harbour) puesto que necesita del runtime de .NET y Microsoft tiene bloqueados que programas en C (Harbour es un programa en C) accedan a .NET, porque precisamente .NET quiere evitar eso, inseguridad en el código, y que solo se ejecute .NET
Como se puede saltar esa limitación ? Eso es lo que hace FiveNet
La idea es sencilla: Tu haces un pequeño programa en C# (todos los Windows actuales llevan incluido por defecto el compilador de C#. En el build de FiveNet se muestra como usarlo desde el MsDos) y ese programa tuyo SI usa la DLL en .NET. Luego ese programa tuyo en C# se convierte en un servidor COM y entonces SI puede ser usado desde Harbour
Finalmente, si necesitas pasar información de un evento de .NET a la aplicación en Harbour, tienes que hacer el camino contrario, gracias a que desde una aplicación en .NET si se puede acceder a una aplicación en C que será la que accede a Harbour puesto que una DLL y todo lo que la DLL use, usan la misma pila (stack) internamente.
La idea es simple, aunque parezca un tanto enrevesada, y lo importante es que funciona