ATL DLL无法注册XP

我用ATL VS 2008创build了一个简单的COM对象。我可以在我的机器上成功注册这个DLL并使用它。

但是,我试图注册一个XP安装的机器没有安装VS 2008的DLL。 但是这似乎不是工作。

然后,我安装了VC 2008可再发行版SP1,并尝试过。 仍然注册失败。

然后,我做了一个DLL的静态构build和尝试在同一台机器,仍然没有成功。

你能帮我弄清楚这里发生了什么吗?

谢谢

编辑

我发现ATL dll可以重新分配以下运行时库

\ VC \ REDIST \ 86 \ Microsoft.VC90.ATL \
atl90.dll,Microsoft.VC90.ATL.manifest

任何想法把这些文件放在客户端机器?

编辑

在尝试了多种方法之后,最后我为ATL和MFC做了一个静态构build。 令人惊讶的是,它的工作。 但是我没有使用ATL DLL中的任何MFC库,有人可以请解释,为什么需要MFC库?

在Visual Studio工具文件夹中应该有一个名为depend.exe的工具

使用它来加载你的ATL dll在失败的机器上,它应该告诉你,如果你有任何丢失的dll。

您可能需要确保您安装了正确的vc2008运行时,我的机器上有4个:

  • 9.0.21022,
  • 9.0.30729,
  • 9.0.30929.17,
  • 9.0.3.30729.4148。

你可以检查你的DLL依赖于哪个版本的.manifest文件。 并确保将.manifest文件与dll一起发送,除非您知道如何不依赖它。