Compartir a través de


Generar y depurar bibliotecas y controles ActiveX

Después de crear un proyecto, ya está preparado para generarlo y depurarlo.

Generar el proyecto

Antes de generar, tiene que establecer las opciones del proyecto. Algunos de los valores de configuración que elija dependerán de si desea crear una versión de depuración o una versión final del control o de la biblioteca. Por norma, puede crear versiones de depuración del programa hasta que esté satisfecho de su funcionamiento y, a continuación, crear una versión final.

Para especificar una versión de depuración o final

  1. En el menú Build, elija Set Default Configuration.
  2. Elija si va a crear una versión de depuración o una versión final del control.
  3. Elija OK.

Para establecer las opciones del proyecto

  1. En el menú Build, elija Settings.
  2. En Settings For, elija si va a crear una versión de depuración o final del programa.
  3. Haga clic en la ficha C/C++ y, a continuación, elija estas opciones:
    • En la lista Category, elija Code Generation.
    • En la lista Calling Convention, elija _fastcall.
    • En la lista Use run-time library, elija Multithreaded DLL.
  4. Elija la ficha Link y, a continuación, en el cuadro de texto Object/Library Modules, agregue una de las bibliotecas siguientes:
    • Si está generando un .ocx, agregue OCXAPI.LIB del directorio API de Visual FoxPro.
    • Si está generando un .fll, agregue WINAPIMS.LIB del directorio API de Visual FoxPro.
  5. Desactive Ignore all default libraries.
  6. Elija OK.

Para asegurarse de que el compilador puede encontrar los archivos necesarios

  1. En el menú Tools, elija Options.
  2. Haga clic en la ficha Directories.
  3. En la lista Show directories for, elija Include files.
  4. En la barra de herramientas Directories, haga clic en el botón Add.
  5. Agregue el directorio que contiene Pro_ext.h.
  6. En la lista Show directories for, elija Library files.
  7. En la barra de herramientas Directories, haga clic en el botón Add.
  8. Agregue el directorio que contiene OCXAPI.LIB del directorio API de Visual FoxPro (al crear un control) o agregue WINAPIMS.LIB del directorio API de Visual FoxPro (al crear un FLL).
  9. En el cuadro de diálogo Options, elija OK.

Después de especificar la configuración, puede compilar y vincular el programa.

Para compilar y vincular un archivo .ocx

  • En el menú Build, elija Build nombreproyecto**.ocx**.

Cuando compile y vincule el archivo .ocx, Visual C++ registrará automáticamente el control en el equipo en el que se generó. Si por alguna razón tiene que registrar el control de otra forma, puede hacerlo mediante el siguiente procedimiento.

Para registrar el control ActiveX

  • En el menú Herramientas de Microsoft Development Environment, elija Registrar Control.

    –O bien–

  • Declare y llame a DLLRegisterServer( ) desde su programa.

Depurar un control ActiveX Control o una biblioteca FLL

Depurar el control o la biblioteca en el contexto de una aplicación de Visual FoxPro es más difícil que depurar de forma independiente de la aplicación. Es una buena idea crear un programa de prueba sencillo para probar el funcionamiento del control o la biblioteca.

Depurar con Microsoft Development Environment

Microsoft Visual C++ versión 4.0 o posterior ofrece un entorno integrado de depuración que facilita el establecimiento de puntos de interrupción para ejecutar el código paso a paso. Puede incluso ejecutar Visual FoxPro desde Visual C++.

Para iniciar la depuración con Microsoft Visual C++

  1. En el menú Build, elija Settings.

  2. En el cuadro de diálogo Project Settings, haga clic en la ficha Debug.

  3. En el cuadro de texto Executable for debug session, escriba la ruta de acceso seguida por Vfp7.exe.

    Por ejemplo, escriba:
    C:\Archivos de programa\Microsoft Visual FoxPro 7.0\Vfp7f.exe.

  4. Elija OK.

  5. Establezca un punto de interrupción en la biblioteca.

  6. En el menú Build, elija Debug. A continuación, elija Go en el submenú.

  7. Cuando Visual Studio muestre el mensaje "Vfp7.exe no contiene información de depuración", elija para continuar.

Para obtener más información acerca de la depuración en Visual C++, consulte el conjunto de documentación de Visual C++.

Depurar con otros depuradores

Debe poder depurar un control o biblioteca con cualquier depurador que controle correctamente un INT 3 (_BreakPoint( )) incrustado en su programa. Puede usar cualquier depurador para depuración simbólica siempre que pueda hacer lo siguiente:

  • Crear una tabla de símbolos a partir de un archivo de asignaciones.
  • Cargar la tabla de símbolos independiente del programa.
  • Volver a colocar los símbolos en una nueva dirección.

Para depurar una biblioteca

  1. Agregue una llamada _BreakPoint( ) a la rutina en el punto en el que comienza la depuración.

  2. Genere el control o biblioteca.

  3. Llame al depurador.

  4. Si el depurador admite símbolos, cargue la tabla de símbolos para la biblioteca.

  5. Inicie Visual FoxPro.

  6. Llame a la rutina de biblioteca desde Visual FoxPro.

  7. Cuando se alcance el punto de interrupción, realice ajustes en la base de símbolos para alinear los símbolos con la ubicación real en la que se cargó la biblioteca.

  8. Incremente el registro del puntero de instrucción (IP) en una unidad para saltar la instrucción INT 3.

  9. Siga depurando como si fuera un programa normal.

    Nota   Elimine siempre todos los puntos de interrupción especificados en el depurador antes de distribuir el producto.

Vea también

Administrar la memoria | Acceso a variables y campos de Visual FoxPro | Acceso a la API de Visual FoxPro | Ampliar Visual FoxPro con bibliotecas externas | Devolver un valor a Visual FoxPro