Delphi - PROBLEMA CON DLL

 
Vista:

PROBLEMA CON DLL

Publicado por Chema (17 intervenciones) el 21/03/2014 20:11:55
Hola, quería hacer una consulta a ver si alguien puede ayudarme, por favor.

He pasado una DLL a un compañero que trabaja con Visual Studio, creo que con el lenguaje C Sharp.
La DLL la generé con Lazarus y funciona perfectamente, pues dentro de Lazarus la he utilizado en otra aplicación y funciona bien.
El caso es que me comenta que al intentar utilizar la DLL le aparece el siguiente error:

"No se puede agregar una referencia a 'RutaDeLaDLL\NombreDeLaDLL.dll'. Este no es un componente COM."


Bien, me gustaría saber si se trata de algún tipo de incompatibilidad, si os habéis encontrado alguna vez con algun problema similar y cómo podríamos solucionarlo.

Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

PROBLEMA CON DLL

Publicado por Jose Luis (5 intervenciones) el 10/07/2014 11:37:45
Las DLL generadas desde lazarus, son nativas Win32 y por tanto no se pueden registrar ni importar como un componente COM.

La DLL debe ser cargada en el proyecto de forma estática de la siguiente forma:

[DllImport("MiDLL.dll")]
public static extern int Suma (int x , int y);

Este es el prototipo de la funcion Suma que se encuentra en MiDLL.dll .
Tu dll tiene que estar generada en Convencion de llamada STDCALL que es el utilizado por defecto por VSTUDIO.

Espero que te sirva de ayuda.

J.L.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

PROBLEMA CON DLL

Publicado por Pico (18 intervenciones) el 10/07/2014 13:05:21
En este hilo respondí y no sé dónde quedó mi mensajito.

Así que sí, una dll que no es objeto com, ni ensamblado, ni nada más que una serie de funciones, o la cargas con DllImport o con LoadLibrary y GetProcAddress, teniendo cuidado de usar la misma convención de llamda, claro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar