4

我有一个用 C++ 编写的 32 位 ActiveX 控件。当尝试在 64 位机器上使用 aximp 将其导入 .Net 应用程序时,它会给出 AxImp 错误:在“xxx.dll”中未找到已注册的 ActiveX 控件。即使在该控件上运行 regsvr32 后,我也会收到相同的错误。

还有另一个用 C++ 编写的 32 位 ActiveX 控件,AxImp 在其上运行没有问题。

再做一次测试 - 尝试将它的引用添加到示例 .Net 应用程序和 VS 2k5 抛出此错误 - 无法添加对“xxx.dll”的引用。请确保该文件是可访问的,并且它是一个有效的程序集或 COM 组件。

但是添加了另一个控件没有问题。并在引用中创建了 AxXXXLib.dll。

问题可能是什么?

谢谢席德

4

1 回答 1

5

此处的另一个问题可能是您的 32 位 OCX 已使用 32 位 regsvr32 注册,但您使用的是 64 位构建工具。确保您的 MSBuild 工具集与 OCX 注册的位数相匹配。

对于 Team Foundation Server 上的 Team Build 设置,编辑构建定义并在 Process > Advanced 下选择正确的平台。

于 2010-07-01T17:47:54.680 回答