Aximp.exe(Windows 窗体 ActiveX 控件导入程序)

ActiveX 控件导入程序将 ActiveX 控件的 COM 类型库中的类型定义转换为 Windows 窗体控件。

Windows 窗体只能承载 Windows 窗体控件,即从 Control 派生的类。 Aximp.exe 生成可承载于 Windows 窗体上的 ActiveX 控件的包装器类。 这使你得以使用适用于其他 Windows 窗体控件的同一设计时支持和编程方法。

若要承载 ActiveX 控件,必须生成从 AxHost 派生的包装器控件。 此包装器控件包含基础 ActiveX 控件的一个实例。 它知道如何与 ActiveX 控件通信,但它显示为 Windows 窗体控件。 这个生成的控件承载 ActiveX 控件并将其属性、方法和事件作为生成的控件的属性、方法和事件公开。

此工具会自动随 Visual Studio 一起安装。 若要运行该工具,请使用 Visual Studio 开发人员命令提示或 Visual Studio 开发人员 PowerShell

在命令提示符处,键入以下内容:

语法

aximp [options]{file.dll | file.ocx}  

备注

参数 说明
文件 包含要转换的 ActiveX 控件的源文件的名称。 文件参数中必须具有扩展名 .dll 或 .ocx。
选项 描述
/delaysign 指定 Aximp.exe 使用延迟的签名对生成的控件进行签名。 必须使用 /keycontainer:/keyfile:/publickey: 选项指定此选项。 有关延迟签名过程的更多信息,请参见延迟为程序集签名
/help 显示该工具的命令语法和选项。
/keycontainer: containerName 使用在 containerName 指定的密钥容器中找到的公钥/私钥对,对生成的控件进行强名称签名。
/keyfile: filename 使用在 filename 中找到的发行者的正式公钥/私钥对,对生成的控件进行强名称签名。
/nologo 取消显示 Microsoft 启动版权标志。
/out: filename 指定要创建的程序集的名称。
/publickey: filename 使用在 filename 指定的文件中找到的公钥,对生成的控件进行强名称签名。
/rcw: filename 使用指定的运行时可调用包装器,而不用生成新的包装器。 你可以指定多个实例。 当前目录用于相对路径。 有关详细信息,请参阅运行时可调用包装器
/silent 取消显示成功消息。
/source 生成 Windows 窗体包装器的 C# 源代码。
/verbose 指定详细模式;显示更多进度信息。
/? 显示该工具的命令语法和选项。

Aximp.exe 一次转换整个 ActiveX 控件类型库,并生成一组程序集,这些程序集包含在原始类型库中定义的类型的公共语言运行时元数据和控件实现。 生成的文件按照下面的模式命名:

COM 类型的公共语言运行时代理:progid.dll

ActiveX 控件的 Windows 窗体代理(其中 Ax 表示 ActiveX):Axprogid.dll

备注

如果 ActiveX 控件的成员名称与 .NET Framework 中定义的名称匹配,则 Aximp.exe 在创建 AxHost 派生类时,将在成员名称前加上前缀“Ctl”。 例如,如果 ActiveX 控件有一个名为“Layout”的成员,由于在 .NET Framework 中定义了 Layout 事件,因此该成员在 AxHost 派生类中将重命名为“CtlLayout”。

可以使用 Ildasm.exe(IL 反汇编程序)之类的工具检查这些生成的文件。

不支持使用 Aximp.exe 为 ActiveX WebBrowser 控件 (shdocvw.dll) 生成 .NET 程序集。

在对 shdocvw.dll 运行 Aximp.exe 时,该工具始终会在运行它的目录中创建另一个名为 shdocvw.dll 的文件。 如果将此生成的文件置于 Documents 目录中,可能会导致 Windows 资源管理器出现问题。 重启计算机时,Windows 会先在 Documents 目录查找 shdocvw.dll 的副本,然后再在 system32 目录查找。 它将使用在 Documents 目录中找到的副本,并尝试加载托管的包装器。 由于 Windows 资源管理器依赖于 system32 目录中的 shdocvw.dll 版本的呈现引擎,因此它将无法正常工作。 如果出现此问题,请在 Documents 目录中删除 shdocvw.dll 的副本,然后重启计算机。

示例

下面的命令为媒体播放器控件 msdxm.ocx 生成 MediaPlayer.dll 和 AxMediaPlayer.dll。

aximp c:\systemroot\system32\msdxm.ocx  

请参阅