Agregar referencias a un proyecto de Visual C++ administrado

En este artículo se proporciona información sobre cómo agregar referencias a un proyecto de Visual C++ administrado.

Versión original del producto: Visual C++
Número de KB original: 310674

Resumen

En este artículo se describe el proceso de agregar una referencia a otro ensamblado en un proyecto de Visual C++. En otros lenguajes, como Visual C#, puede agregar una referencia a través del cuadro de diálogo Agregar referencia . Este cuadro de diálogo no está disponible para aplicaciones administradas de C++. Hay varias sugerencias que facilitan el uso de referencias en una aplicación administrada de C++.

Referencias de Microsoft .NET

Las referencias de .NET apuntan a ensamblados compartidos. Por ejemplo, el ensamblado System.Windows.Forms.dll es un ensamblado estándar para acceder a las clases de Windows Forms. Para usar este ensamblado en una aplicación administrada de C++, simplemente tiene que hacer referencia a él con una #using directiva de preprocesador, como se muestra aquí:

#using <System.Windows.Forms.dll>

Referencias COM

El uso de un objeto de modelo de objetos componentes (COM) en una aplicación administrada de C++ implica una decisión de diseño. Una opción es usar código COM no administrado dentro de una clase administrada. Por ejemplo, podría decidir usar la solución tradicional #import . Esta puede ser una buena opción para los casos en los que hay problemas al usar la interoperabilidad COM.

La segunda opción es usar ensamblados de interoperabilidad que encapsulan el objeto COM. Este es el único método disponible para otros lenguajes, como C#, y Visual Basic .NET. Para crear un ensamblado de interoperabilidad para un objeto COM, use la herramienta TLBIMP.exe. Por ejemplo, siga estos pasos para automatizar Internet Explorer desde una aplicación administrada:

  1. Abra un símbolo del sistema.

  2. Vaya a la carpeta Sistema de Windows .

  3. Escriba el siguiente comando:

    tlbimp shdocvw.dll /out:Interop.shdocvw.dll
    
  4. Mueva Interop.shdocvw.dll a la carpeta del proyecto.

Esto crea un ensamblado de interoperabilidad para los objetos COM en Shdocvw.dll. El archivo resultante, Interop.shdocvw.dll, se puede usar con una #using directiva . A continuación, se puede tratar como un componente administrado. Para obtener instrucciones sobre cómo copiar automáticamente esta biblioteca de vínculos dinámicos (DLL) en la carpeta de salida, consulte la sección Uso de eventos posteriores a la compilación de este artículo.

Nota:

Las variables de entorno para Visual C++ deben establecerse para que se reconozcan TLBIMP.exe. Si no están establecidos, primero tendrá que ejecutarse ./VC7/BIN/VCVARS32.bat en Visual Studio .NET o ./VC/BIN/VCVARS32.bat en Visual Studio y Visual C++ Express Edition.

Referencias de proyecto

Las referencias de proyecto son referencias a ensamblados creados por otros proyectos. De nuevo, la #using directiva se usa para hacer referencia a estos ensamblados. Sin embargo, dado que estos ensamblados no se comparten, debe tomar medidas para asegurarse de que el compilador pueda encontrarlos. Hay dos métodos para hacerlo:

  • Copie el ensamblado en la carpeta del proyecto.
  • Cambie la configuración del proyecto para buscar el ensamblado:
  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto.

  2. Haga clic en la carpeta C/C++ .

    Nota:

    En Visual C++, expanda Propiedades de configuración y, a continuación, expanda C/C++.

  3. Haga clic en la página de propiedades General .

  4. Modifique la propiedad Resolve #using References para que apunte a la carpeta que contiene el ensamblado de destino.

Uso de eventos posteriores a la compilación

Los ensamblados privados deben residir en la misma carpeta que el ejecutable que los usa. Al agregar una referencia en Visual C#, en Visual Basic .NET o en Visual Basic, se copia automáticamente en la carpeta de salida. En una aplicación administrada de C++, este paso se puede automatizar mediante el uso de post-build eventos. Por ejemplo, considere un escenario en el que tiene un ensamblado denominado MYLIB.dll en la carpeta del proyecto de la aplicación administrada de C++ denominada TestApp. Los pasos siguientes configurarán un post-build evento que copiará este archivo DLL en la carpeta de salida del proyecto TestApp .

  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto de C++ administrado.

  2. Haga clic en la carpeta Eventos de compilación .

    Nota:

    En Visual C++, expanda Propiedades de configuración y, a continuación, expanda Eventos de compilación.

  3. Haga clic en la página de propiedades Evento posterior a la compilación .

  4. Modifique la propiedad Línea de comandos al siguiente comando:

    copy $(<ProjectDir>)mylib.dll $(<TargetDir>)  
    

Uso de Visual C++ .NET o Visual C++

Con Visual C++ .NET o Visual C++, puede agregar una referencia mediante el cuadro de diálogo Agregar referencia . Para agregar una referencia de proyecto, siga estos pasos:

  1. En Explorador de soluciones, seleccione el proyecto.

  2. En el menú Proyecto , haga clic en Agregar referencias.

    Nota:

    En Visual C++, haga clic en Referencias en el menú Proyecto y, a continuación, haga clic en Agregar nueva referencia.

  3. En el cuadro de diálogo Agregar referencias , haga clic en la pestaña correspondiente a la categoría a la que desea agregar una referencia.

    Nota:

    En Visual C++, haga clic en la pestaña Examinar del cuadro de diálogo Agregar referencias .

  4. Haga clic en Examinar, busque el componente que desee en la unidad local y, a continuación, haga clic en Aceptar. El componente se agrega al campo Componentes seleccionados .

    Nota:

    En Visual C++, busque el componente que desea en la unidad local.

  5. Para agregar la referencia seleccionada a la pestaña actual, haga clic en Agregar.

    Nota:

    En Visual C++, haga clic en Aceptar para cerrar el cuadro de diálogo y agregar el componente en el cuadro de lista Referencias del cuadro de diálogo Página de propiedades del proyecto.