Delphi - USAR UNA DLL C# EN LAZARUS

 
Vista:

USAR UNA DLL C# EN LAZARUS

Publicado por Chema (17 intervenciones) el 07/08/2014 02:43:44
Hola. Quisiera hacer una consulta a los más veteranos.
Dispongo de un pequeño código escrito en Visual Studio 2012, lenguaje c#.
Ése código lo he tratado para obtener una DLL y lo que pretendo es utilizar la DLL en una aplicación Lazarus.
He llegado hasta el punto de poder cargar la DLL, pero cuando intento acceder a cualquier método no lo encuentra.

El código escrito es el siguiente:

try
MyLibC := LoadLibrary('MiDll.dll');
if MyLibC = dynlibs.NilHandle then begin resultado:= false; Exit; end;
finally
end;
nombreMetodo:= 'holamundo';
MyFunc:= TMyFunc(GetProcedureAddress(MyLibC, nombreMetodo));
try
MyFunc();
except
end;

Una vez que se ejecuta:
MyFunc:= TMyFunc(GetProcedureAddress(MyLibC, nombreMetodo));
el resultado asignado a MyFunc es siempre 0.

Me he percatado de que los métodos a los que intento acceder pertenecen a clases declaradas en c#. He intentado probar a asignar diferentes nombres y combinaciones a 'holamundo', pero sigue sin funcionar.

¿Alguien que pueda ayudarme?
Muchas gracias por adelantado.
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
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

USAR UNA DLL C# EN LAZARUS

Publicado por E.T. (1244 intervenciones) el 07/08/2014 19:02:27
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

USAR UNA DLL C# EN LAZARUS

Publicado por Jose Luis (5 intervenciones) el 03/09/2014 13:49:48
Hola:

Creo que C# solo genera DLL para entornos NET, es decir, no son librerias de W32, por lo que no puedes utilizarlas desde Lazarus.
Deberías usar otro lenguaje como C++ , ó Delphi para crear la DLL y posteriormente cargar sus funciones con GetProcedureAddress().

Saludos

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