elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [SOLUCIONADO] Problemas para importar un dll
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO] Problemas para importar un dll  (Leído 3,075 veces)
SARGE553413

Desconectado Desconectado

Mensajes: 176


Ver Perfil
[SOLUCIONADO] Problemas para importar un dll
« en: 7 Julio 2014, 12:55 pm »

Hola a todos.

Tengo que hacer un proyecto en el cual debo usar un dll. Para las primeras pruebas creé un proyecto e importé el dll de forma "estática", es decir, haciendo simplemente
#include "nombreDLL.h".

El caso es que ahora he creado un proyecto nuevo, intento importar o incluir ese fichero de cabecera y el compilador me da este error:
error LNK2028: se hace referencia al símbolo (token) sin resolver (0A000017) ...
error LNK2019: símbolo externo "public: static class XCamera * __cdecl XCamer ...

No sé que hacer, ¿Alguien puede ayudarme por favor?


« Última modificación: 7 Julio 2014, 17:42 pm por SARGE553413 » En línea

Luisango


Desconectado Desconectado

Mensajes: 313



Ver Perfil WWW
Re: Problemas para importar un dll
« Respuesta #1 en: 7 Julio 2014, 13:27 pm »

Hola!

Un DLL es, por decirlo así, un conjunto de funciones compiladas que te ofrecen cierta funcionalidad de manera externa.

Cuando utilizas en tu código una función de una DLL externa, estás llamando a funciones que están compiladas en esa librería y, para ello has de incluir en tu proyecto una referencia directa a esa librería, para que cuando se ejecute el linker, éste pueda determinar dónde exáctamente se encuentra el código de esa función en concreto. En Visual Studio puedes hacer esto haciendo click derecho en tu proyecto, seleccionando propiedades y en la sección de C++ > Linker hay un apartado que se llama Additional Libraries o Librerías adicionales, sitúa ahí la librería DLL y vuelve a compilar.

Es muy importante que entiendas cómo funciona cada subproceso de compilación de C/C++ para que puedas programar con seguridad. Aquí te dejo un vídeo que explica muy por encima cómo funciona: https://www.youtube.com/watch?v=2dan4hJlOv0

Espero haberte ayudado.


En línea

Even better...
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Problemas para importar un dll
« Respuesta #2 en: 7 Julio 2014, 13:33 pm »

Generalizando, cualquier función que uses en C++ (sea tuya propia o de terceros ), se compone de dos partes:

  • Cabecera: es la declaración de la clase, se suele encontrar en los archivos de cabecera (*.h)
  • Implementación: la chicha de la función, es la parte que tiene el código fuente, se encuentra en ficheros de código (*.c)

Cuando quieres incluir una función en tu código necesitas ambas partes para que el invento funcione.

Cuando tu compilas una DLL se generan dos archivos:

  • La librería (*.dll), incluye el código de la librería debidamente compilado.
  • Archivo con la interfaz de la librería (*.a, *.lib). Este archivo te lo va a requerir la aplicación que vaya a usar tu librería para poder "enlazar" correctamente con las funciones contenidas en la dll

El error que te está dando el compilador es que, como no le estás indicando dónde se encuentra el archivo con la interfaz de la librería y, en consecuencia, no es capaz de encontrar los puntos de entrada a las funciones contenidas en tu dll.

Solución: modifica tu proyecto para incluir el archivo de la interfaz en el proceso de linkado.
En línea

flony


Desconectado Desconectado

Mensajes: 584



Ver Perfil
Re: Problemas para importar un dll
« Respuesta #3 en: 7 Julio 2014, 14:03 pm »

por una pregunta que haces antes, parece que es tuya la libreria
dependerá del IDE que tienes, pero es evidente que el problema es que no puedes linkar

como ves en el dibujo fase 3, las librerías es algo que viene de afuera de tu código, para ello deberás "linkear" ("algo así como decirle donde esta ubicada la dll)
bueno si usas visual acá un ejemplo sencillo de como hacer una librería estática(esta es la primer parte del problema llega hasta fase 2) y usarla en tu programa (esta seria la segunda parte acá llega hasta fase 3) para decirlo en terminos sencillos vas a hacer dos proyectos distintos que tienen algo en comun
http://msdn.microsoft.com/es-es/library/ms235627.aspx
y aca un ejemplo para usar una dll
http://msdn.microsoft.com/es-es/library/ms235636.aspx
« Última modificación: 7 Julio 2014, 14:17 pm por flony » En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
SARGE553413

Desconectado Desconectado

Mensajes: 176


Ver Perfil
Re: Problemas para importar un dll
« Respuesta #4 en: 7 Julio 2014, 17:03 pm »

Ok muchas gracias a los 3, ya lo he conseguido solucionar.

Como decís, hacía le include pero no añadía el .dll en propiedades del proyecto.

Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[SOLUCIONADO]Importar datos de excel
.NET (C#, VB.NET, ASP)
diego_lp 3 7,631 Último mensaje 27 Noviembre 2009, 23:53 pm
por MANULOMM
Problemas para importar una base de datos [SOLUCIONADO]
Bases de Datos
aldg 3 5,553 Último mensaje 1 Mayo 2011, 15:48 pm
por aldg
Problemas con base de datos al importar.
Desarrollo Web
Angel Zero 2 3,718 Último mensaje 18 Octubre 2011, 15:39 pm
por [u]nsigned
(Solucionado) Importar archivos .PSP de PS CS 5 a PS CS 6
Diseño Gráfico
Eleкtro 0 5,693 Último mensaje 30 Mayo 2012, 15:32 pm
por Eleкtro
[C++] Importar Remove(); [SOLUCIONADO]
Programación C/C++
DeMoNcRaZy 3 2,755 Último mensaje 17 Mayo 2015, 17:56 pm
por DeMoNcRaZy
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines