C/Visual C - DLL

 
Vista:

DLL

Publicado por Alfonso (4 intervenciones) el 24/05/2005 13:32:07
Hola a todos!!! Necesito ayuda urgente. ¿Como se crean las DLL's en C? Luego, ¿como utilizo dichas DLL's en Visual Basic?
Gracias a los/las que intenten ayudarme.
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

Publicado por Yo (1 intervención) el 24/05/2005 16:21:23
STFW
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

RE:DLL

Publicado por fernando.gomez (1603 intervenciones) el 24/05/2005 22:23:34
Supongo que trabajas con Visual C. Una DLL es como cualquier otro programa desde el punto de vista del desarrollador. Tienes una función DllMain para que inicialices la librería (si es necesario).

Esencialmente, sólo tienes que declarar la clase, estructura, función, enumeración, etc, que quieras exportar, prefijandola con __declspec(dllexport):

class __declspec(dllexport) MiClase
{
};

Con esto, el compilador se encargará de exportar dicha clase. Para importarla, sólo tienes que agregar la siguiente declaración:

extern class __declspec(dllimport) CMiClase;

y referenciarla en las propiedades del proyecto para que el compilador enlace tu otro programa con la DLL.

Importar una función desde VB es sencllo. Supongamos la siguiente función:
int __declspec(dllexport) HacerAlgo(int i);

Para importarla desde VB pones una sentencia "Declare":
Declare Function HacerAlgo Lib "TuLib.dll" _
Alias "HacerAlgo" (ByVal i As Integer) As Integer

Ahora bien, aguas con el tipo de dato. En VB los tipos de datos pueden diferir, como el caso de String. En VB un String es equivalente a un BSTR de C++ y Windows, no a un char*. Puedes pasar estructuras siempre y cuando las extrapoles a VB con un Type ... End Type.

Pero no puedes pasar clases directamente. Esto es porque las "clases" de VB son objetos COM. Entonces, tendrías que hacer un objeto COM y hacer un archivo IDL (el cuál VB entenderá) correspondiente.

Saludos.

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