C sharp - DLL y C#

 
Vista:

DLL y C#

Publicado por Raul Gomez (1 intervención) el 10/07/2007 22:09:09
Saludos amigo
el problema mio es el siguiente...

He creado una DLL en Borland C++ Builder 6.0 y ahora esas funciones las deseo tener en mis programas de C#, pero cuando le adiciono una referencia me da un error al referenciarla como si la DLL no tuviera un formato conocido...

¿Que otra forma tengo para hacer esto.? ¿Alguna API quizas que me sirva para invocar?

espero me puedan ayudar..

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

RE:DLL y C#

Publicado por fisa (87 intervenciones) el 16/07/2007 13:55:01
Cuando agregas referencias en un proyecto, las dll que agregas tienen que ser dlls de .net, es decir, dll en codigo manejado (MSIL) y no en codigo nativo.
Una dll compilada desde C++ builder esta en codigo nativo, y no en codigo manejado.
Lo que tenes que hacer es agregar la dll a la carpeta de tu programa, y de la forma que ahora te voy a explicar podes utilizar los metodos que tiene.
Esto (usar librerias de codigo no manejado desde tu aplicacion, que es codigo manejado) se llama Interop, por si queres buscar mas info.

Supongamos que en tu dll hay una funcion que se llama MiFuncionDll, que recibe dos parametros, un string (param1) y un integer (param2). La funcion devuelve como resultado un booleano. Tu dll se llama "MiDll.dll".

Desde tu aplicacion tendrias que hacer esta referencia en el codigo, como si estuvieras declarando un metodo cualquiera:

[System.Runtime.InteropServices.DllImport("MiDll.dll")]
private static extern bool MiFuncionDll(string param1, int param2);

Con eso, desde tu aplicacion entonces verias un nuevo metodo llamado MiFuncionDll, que lo que hace en realidad es llamar a la funcion en tu dll.
La visibilidad dependera de si lo declaras como private, internal, public, etc, igual que con cualquier metodo normal.

Si lo que queres es usar clases que hay declaradas dentro de la libreria, es otro tema, y lo que te recomendaria es reescribir tu dll en .net, te va a convenir mucho mas (es mas, es casi imposible que puedas usar las clases si no lo haces).
Espero haber ayudado. Adios y suerte

Fisa
Correo: [email protected]
MSN: [email protected]
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