Estoy tratando de agregar SQLite a mi proyecto a través de una DLL.¿Cómo incluyo una DLL de SQLite en mi proyecto de C++?
He descargado SQLiteDLL-3 del download page, he extraído su contenido (un archivo DLL y .h) y ejecuté lib.exe en él para generar un archivo .lib. Luego configuro el directorio que contiene los archivos .lib y .dll para que sea un Directorio de biblioteca adicional, en la configuración del proyecto, en Linker >> General.
Luego descargué SQLiteSource-3 de la página de descarga y extraje el archivo SQLite3.h en el directorio con los archivos .Lib y .DLL, y agregué ese directorio como un directorio de inclusión adicional en C/C++ >> General . Agregué #include a mi archivo principal, y luego agregué sqlite3.dll como Dependencia Adicional en Linker >> Entrada.
Básicamente seguido this, pero cuando lo ejecuto, me sale un error diciendo:
fatal error LNK1107: invalid or corrupt file: cannot read at 0x2B8
He intentado varias cosas para corregirlo, incluyendo la construcción del archivo .lib bajo x86 y x64, e incluyendo la ruta completa al archivo .lib en la lista de Dependencias Adicionales. Siempre es ese error el que obtengo. Parece al menos encontrar el archivo .h bien, porque si me meto con el nombre en el include, aparece el error "no se puede encontrar el archivo", por lo que esa parte parece ser correcta.
¿Alguien puede ver lo que podría estar haciendo incorrectamente y cómo corregir el problema?
Actualización: ha solucionado el problema "archivo no válido o está dañado" al añadir el archivo .lib a la lista Dependies adicionales, en comparación con el archivo .dll. Ahora que estoy recibiendo errores no resueltos vinculador:
LNK2019 de error: símbolo externo sin resolver _sqlite3_exec referencia en función de _main
LNK2019 de error: símbolo externo sin resolver _sqlite3_open referencia en función de _main
fatal error LNK1120: 2 externos sin resolver
añadir el archivo .lib como una entrada de conector, no el archivo .dll. – Blindy
Eso borró ese error. Gracias. Ahora estoy obteniendo errores de enlazador de símbolos externos no resueltos para cada llamada a una función de SQLite. Las funciones aparecen en intellisense, si eso importa en todo. –
¿Cuál es uno de los símbolos que faltan? (Debería decir en el error) – dgnorton