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.
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


0