我用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个:
你可以检查你的DLL依赖于哪个版本的.manifest文件。 并确保将.manifest文件与dll一起发送,除非您知道如何不依赖它。