HOW TO: 添加对托管的 Visual C++ 项目的引用

本文为转载,已经忘记出处。以下是原文。

概要

       本文介绍在 Visual C++ .NET 项目中添加对其他程序集的引用的过程。 在其他 .NET 语言(如 C# .NET)中,您可以通过添加引用对话框添加引用。但托管的 C++ 应用程序中没有这个对话框。 有几点提示可以让在托管的C++ 应用程序中使用引用更容易。

.NET 引用

      .NET 引用指向共享的程序集。 例如,System.Windows.Forms.dll 程序集是用于访问 Windows 窗体类的标准程序集。若要在托管的 C++ 应用程序中使用此程序集,只需用一个 #using 预处理器指令引用它即可,如下所示:

#using <System.Windows.Forms.dll>

COM 引用

     在托管 C++ 应用程序中使用 COM 对象涉及到设计决策的问题。一种选择是,在托管类中使用非托管 COM 代码。 例如,您可以决定使用传统的#import 解决方案。 如果使用 COM Interop 有问题,则可以选择这种方法。

     第二种选择是使用包装 COM 对象的 interop 程序集。对于其他 .NET 语言(如 C# .NET 和 Visual Basic .NET),这是唯一可用的方法。 若要为 COM 对象创建 interop 程序集,请使用 TLBIMP.exe 工具(请参见“参考”部分)。 例如,可按照下列步骤操作,从托管的应用程序自动化 Microsoft Internet Explorer:

    1. 打开命令提示符。

    2. 定位到 Windows 系统文件夹。

    3. 键入下面的命令:

         tlbimp shdocvw.dll /out:Interop.shdocvw.dll

    4. 将Interop.shdocvw.dll 移到您的项目文件夹中。

     这将为 Shdocvw.dll 中的 COM 对象创建一个 interop 程序集。可通过 #using 指令使用结果文件 Interop.shdocvw.dll。 此时可将它视为托管组件。 有关将此动态链接库(DLL) 自动复制到输出文件夹中的说明,请参见本文的“使用生成后事件”部分。

备注: 必须设置 Visual C++ .NET 的环境变量,这样才能识别 TLBIMP.exe。 如果不设置,则必须先运行./VC7/BIN/VCVARS32.bat。 


项目引用

     项目引用是指对其他项目创建的程序集的引用。 同样,可使用 #using 指令引用这些程序集。 但是,由于没有共享这些程序集,您必须采取措施以确保编译器可以找到它们。可以使用两种方法实现此目的:

·    将程序集复制到项目文件夹中。 -或者- 更改项目设置以查找程序集:

    1. 打开项目的属性页对话框。

   2. 单击 C/C++ 文件夹。

   3. 单击常规属性页。

   4. 修改 Resolve#using References 属性以指向包含目标程序集的文件夹。


使用生成后事件

     私有程序集必须与使用它们的可执行文件驻留在同一文件夹中。 当您在 C# .NET 或 Visual Basic .NET 中添加引用时,引用将自动复制到输出文件夹中。 在托管的 C++ 应用程序中,可通过使用生成后事件来自动完成此步骤。 例如,有这样一种情景:在名为“TestApp”的托管 C++ 应用程序的项目文件夹中,有一个名为“MYLIB.dll”的程序集。 下面的步骤将创建一个生成后事件,该事件会将此 DLL 复制到 TestApp 项目的输出文件夹中。

     1. 打开托管的 C++ 项目的属性页对话框。

    2. 单击 BuildEvents 文件夹。

    3. 单击生成后事件属性页。

    4. 将 CommandLine 属性修改为下面的命令:

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值