Errores de tiempo de ejecución de depuración de Visual Studio para la aplicación OCCI C++
Frecuentes
Visto 2,575 equipos
2
Estoy usando Visual Studio para desarrollar un programa C++ que usa OCCI para consultar una base de datos Oracle 11g. Es un programa bastante simple en este punto, y solo hace una sola consulta, pero sigo encontrándome con errores de tiempo de ejecución. Primero traté de desarrollar esto en VS2010, descargué los archivos OCCI 11.2.0.3 y obtuve un error relacionado con el punto de entrada para un procedimiento de asignación de montón que no se encuentra en oci.dll. Tengo la impresión de que este error podría deberse al hecho de que mi cliente de Oracle es 11.2.0.1.
Como no puedo actualizar mi cliente a una versión superior por razones de soporte, decidí volver a usar Visual Studio 2005, ya que leí en la documentación de OCCI de Oracle que las versiones vc8 de OCCI libs y DLL ya vienen instaladas en 11g. cliente. Así que moví mi programa C++/OCCI a VS 2005 y ahora recibo un error de tiempo de ejecución de depuración diferente: un cuadro de mensaje de error que dice "La aplicación no se pudo inicializar correctamente" y un mensaje del cargador en la ventana de salida de VS que dice "ldrpWalkImportDescriptor () no pudo sondear [ORACLE CLIENT DIR]\oci\lib\msvc\vc8\oraocci11d.dll para su manifiesto, ntstatus 0xc0150002" No veo un archivo de manifiesto para oraocci11d.dll, así que estoy perdido para saber cómo resolver esto. ¿Alguien más versado en la configuración de VS para OCCI puede hacer una sugerencia? Gracias por adelantado...
Sheldon
1 Respuestas
6
Noté que varias preguntas de OCCI aquí quedaron sin respuesta, por lo que me siento obligado a explicar cómo superé mi problema :) Como se menciona a menudo en los hilos de OCCI, la clave es descargar la versión adecuada de Oracle Instant Client. Traté de usar archivos de mi cliente de tiempo de ejecución que ya tenía instalado, pero el número de versión de ese cliente es 11.2.0.1 y el OCCI para VS2010 requiere una versión de 11.2.0.2 o 11.2.0.3. Así que terminé descargando la versión 11.2.0.2 tanto para OCCI como para Instant Client, ya que los números de versión tienen que coincidir para que las cosas funcionen...
Después de eso, era simplemente una cuestión de configurar la variable ambiental PATH y configurar el proyecto de Visual Studio para que apunte a los directorios que contienen las DLL OCCI, las bibliotecas y los archivos de inclusión, y también configurar la variable ambiental TNS_ADMIN para que apunte al directorio que contiene el Archivo TNSNAMES.ORA que define la base de datos a la que estoy tratando de conectarme. Para obtener una descripción paso a paso de esta configuración, consulte este blog por Marcos Williams. A pesar de que esta publicación fue escrita para Visual Studio 2008, el procedimiento sigue siendo el mismo para 2010, solo que con versiones diferentes...
Sheldon
Respondido 19 Abr '16, 18:04
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas c++ runtime-error visual-studio-debugging oracle11gr2 occi or haz tu propia pregunta.