Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > .NET
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-12-2007
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Poder: 18
rolandoj Va por buen camino
Question Pueden invocarse DLLs creados con .NET desde aplicativos Delphi que no sean .NET ?

Hola,

Espero que puedan ayudarme. Nunca he trabajado con .NET y no sé casi nada del tema; pero, para un problema en particular causado por un error conocido del propio Microsoft,la única solución razonable que dan involucra usar algo de .NET.

Como mi aplicación es Win32, o habrá que renunciar a una característica que venía funcionando muy bien, o habrá que establecer una pequeña interfase.

Para saber si vale la pena investigar la segunda opción, les tengo estas preguntas:

Es posible escribir una DLL con .NET que exporte una función, de forma que pueda ser invocada por una aplicación escrita en una versión de Delphi que no sea para .NET ?

Si no es posible, hay alguna forma de importar una librería de clases de .NET a una versión de Delphi que no sea para .NET ?

En ambos casos, de poder hacerse, se pueden obtener en forma 100% binaria de manera que no sea necesario montar en los clientes la plataforma de .NET usualmente requerida para ejecución (entiendo que es el framework). ?

Gracias por la atención
Responder Con Cita
  #2  
Antiguo 06-12-2007
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por rolandoj Ver Mensaje
Hola,

Espero que puedan ayudarme. Nunca he trabajado con .NET y no sé casi nada del tema; pero, para un problema en particular causado por un error conocido del propio Microsoft,la única solución razonable que dan involucra usar algo de .NET.

Como mi aplicación es Win32, o habrá que renunciar a una característica que venía funcionando muy bien, o habrá que establecer una pequeña interfase.

Para saber si vale la pena investigar la segunda opción, les tengo estas preguntas:

Es posible escribir una DLL con .NET que exporte una función, de forma que pueda ser invocada por una aplicación escrita en una versión de Delphi que no sea para .NET ?

Si no es posible, hay alguna forma de importar una librería de clases de .NET a una versión de Delphi que no sea para .NET ?

En ambos casos, de poder hacerse, se pueden obtener en forma 100% binaria de manera que no sea necesario montar en los clientes la plataforma de .NET usualmente requerida para ejecución (entiendo que es el framework). ?

Gracias por la atención

Es posible invocar desde Delphi para win32 (Caso específico delphi 7), librerias escritas en C#. La manera de hacerlo la encontrarás en el libro: Mastering delphi 7 de marco cantú. editorial Sibex
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #3  
Antiguo 10-12-2007
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Poder: 18
rolandoj Va por buen camino
Gracias. Comentarios y duda

Cita:
Empezado por poliburro Ver Mensaje
Es posible invocar desde Delphi para win32 (Caso específico delphi 7), librerias escritas en C#. La manera de hacerlo la encontrarás en el libro: Mastering delphi 7 de marco cantú. editorial Sibex
Hola,

Gracias por la información. He estado buscando el libro; pero no lo he encontrado en las librerías de la ciudad y dudo que esté disponible en mi país. De todas formas hoy haré un último intento. He visto que lo ofrecen en Internet en www.amazon.com; pero esa vía tomaría mucho tiempo y la decisión de como superar el problema ya tenemos que tomarla.

Por otro lado, con la ayuda de un amigo hemos logrado generar la DLL de .NET requerida. Aún no hemos conseguído invocarla desde Delphi; sin embargo, con la documentación que hemos hallado y las pruebas que hemos hecho, todo indica que no se puede generar independiente; es decir, tocaría montar en cada equipo todo el soporte .NET. En pocas palabras, que no sería una buena solución.

Así las cosas, la decisión que se está a punto de tomar es irnos con la otra solución que plantea Microsoft que implica montar un software adicional en cada cliente. Es una mala solución; pero sería esencialmente lo mismo que lo que hasta ahora hemos encontrado, con la ventaja de ser más simple y más seguro (entre otras cosas porque tenemos Delphi 5, no Delphi 7).

De todas formas, podría alguién confirmarme si la solución "ideal" (bajo las condiciones de Microsoft), tener un DLL independiente que pueda invocarse desde Delphi sin que el cliente requiera la plataforma .NET instalada, es posible ?

Gracias
Responder Con Cita
  #4  
Antiguo 11-12-2007
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
Quizas compilando .NET a codigo de maquina en vez de msil (usando ngen o algo parecido) te pueda ayudar, al no requerir el framework para ejecutarse. Ahora bien, no he probado ngen, y no se si funciona para librerias o solo para ejecutables.

He visto alguna vez las interfases entre .NET y Win32 y no me parecen simples de realizar. De todas formas, prueba por ahi y dinos que tal te fue.

Suerte!
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #5  
Antiguo 11-12-2007
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.912
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Claro que se puede. Es una de las cosas "magicas" que se hacen con Delphi.

Las versiondes de Delphi 2005+ tiene la opcion de cargar directamente, pero de resto hay que usar varios trucos.

El mas basico es Interop:

http://www.blong.com/Conferences/Bor...nterop.htm#CCW

Y el otro es p-invoke inverso:

http://hallvards.blogspot.com/2007/1...oke-magic.html
__________________
El malabarista.
Responder Con Cita
  #6  
Antiguo 13-12-2007
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Poder: 18
rolandoj Va por buen camino
Gracias. Probaré

Hola,

Gracias por las ideas. Ahora mismo estoy muy ocupado con otros temas; pero probaré y les comentaré, a más tardar la semana entrante
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Se pueden controlar los eventos en report manager desde codigo?¿ Alfredo Impresión 2 23-11-2007 19:06:39
Se pueden usar componentes creados en Delphi desde otros lenguajes .Net? JARivera OOP 3 12-05-2007 03:22:24
Usar componentes desde Dlls Albano OOP 6 19-12-2006 22:41:25
Dlls en Delphi Khelma API de Windows 0 08-03-2005 15:52:08
Campos creados dinámicamente vs creados estáticamente Jose_Pérez Conexión con bases de datos 2 14-04-2004 11:34:03


La franja horaria es GMT +2. Ahora son las 06:55:38.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi