Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   .NET (https://www.clubdelphi.com/foros/forumdisplay.php?f=17)
-   -   Comunicación con funciones de una dll (https://www.clubdelphi.com/foros/showthread.php?t=14934)

walace_soy 05-10-2004 13:09:25

Comunicación con funciones de una dll
 
Hola, tenemos Delphi 6 y nos han enviado una dll que esta hecha en Visual Basic .NET.

Hacemos las llamadas como las hacemos siempre y no conseguimos que ejecute, nos da errores de memoria, alguien ha tenido este problema?, hay que hacer algo especial para utilizar en Delphi 6, una funcion que esta en una dll que esta hecha con visual basic.NET.

Si alguien puede ayudarme se lo agradeceria.

mamcx 05-10-2004 22:38:17

Lo que haces, no se hace!

La dll es .NET, igual= una DLL de objetos en managed code. Necesitas es que te la pasen como un objeto COM, o usar D7 (*creo* que D7 permite llamar assemblys en .NET? o se me cruzaron los cables con lo nuevo de D9?)

En ultimas, la facil es que te la pasen como objeto COM..

__hector 06-10-2004 02:51:07

pues si, creo que si se hace. Se necesita un wrapper de win32 (com) al assembly de net. La verdad nunca nunca lo he hecho, pero si buscamos en la red podemos encontrar algunas referencias (no parece ser simple, pero tampoco complicado):

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

http://www.blong.com/Conferences/Bor...InversePInvoke

Suerte!

walace_soy 07-10-2004 09:06:04

gracias, pero para simples????
 
Buenas, gracias a los que habeis contestado algo, pero tengo un problema, me acabo de dar cuenta que soy muy simple y la verdad no he entendido la mitad de las cosas que me habeis dicho.

Alguien podria simplificarlo y poner un ejemplo de codigo fuente???? vamos es que soy muy lerdo o vosotros mu tecnicos.

Gracias.

__hector 07-10-2004 16:27:05

Algo simple: no hay forma de que hagas eso que pretendes, sino quieres enredarte con algo complejo. Lamentablemente (y por suerte) una dll de .NET (assembly) no se parece en absoluto a lo que estabamos acostumbrados en Win32. Segun pudiste leer en uno de los enlaces que te pase, no es sino un lio lograr esa interaccion, se trata de exportar metodos, desensamblar/reensamblar la dll para poder utilizarla en aplicaciones Win32.

Piensa que una tiene los odiosos HRESULTS, P/Invoke y tipos de datos que no coinciden (quien ha intentado manejar un arreglo de variants de VB6 en delphi, como un arreglo?? Nunca lo he logrado) que vienen de win32 (por eso en las importaciones de dll externas en delphi tienes que especificar el metodo de importacion: stdcall, safecall, pascal, cdecl y otras que aparecen en la ayuda de delphi)

En NET todo eso viene resuelto: cada lenguaje tiene que implementar y regirse por el CLI y el CLS (Common Language Interface y Specification respectivamente), y el intercambio entre assemblies es: un ketchup.

mamcx 07-10-2004 20:49:39

Lo simple es que te TIENEN que pasar la DLL de .NET en COM/ActiveX (o sea que se pueda crear con CreateOleObject() y eso es todo...


La franja horaria es GMT +2. Ahora son las 10:41:36.

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