Pregunta: | 41874 - LLAMADA A UN .LIB DESDE VC++. |
Autor: | Diego C. |
Saludos a todos los de la lista.
Mi consulta es la siguiente, a ver si me pueden ayudar. Tengo una librería estática (.LIB), hecha con código C estandar y compilada con Visual C++. Aparte tengo un proyecto (DLL), desarrollado en C++, hecho con Visual C++. Este proyecto necesita una función "Tdes" de la librería (.LIB), mencionada anteriormente. Hago el Include del .h de la librería e incluyo correctamente la librería .LIB en el proyecto, mediante el menú "Project - Add to Project - Files". Cuando compilo me da el siguiente error el Linker: error LNK2001: unresolved external symbol "int __cdecl TDes(char,char *,char *,char *)" (?TDes@@YAHDPAD00@Z) ¿Acaso, no puedo usar una librería hecha en C en un proyecto hecho en C++?, ¿o es que me falta cambiar algún parámetro en el proyecto C++ para que me coja la librería?. Repito que hago el include del .h y añado correctamente el .LIB en el proyecto. Me urge una solución. Muchas gracias por su tiempo y su ayuda. |
Respuesta: | Hector Galarza |
Encierra la declaracion de las funciones con extern "C"
ej: en el .h #ifdef __cplusplus // asegurarte q es c++, en c da un error extern "C" { // tus funciones } #endif |